base model generation
This commit is contained in:
parent
38b254548e
commit
15c8c56f24
3
.gitignore
vendored
3
.gitignore
vendored
@ -4,4 +4,5 @@ ormconfig.json
|
||||
.vscode
|
||||
typings/
|
||||
**/*.js
|
||||
**/*.js.map
|
||||
**/*.js.map
|
||||
results/*.*
|
@ -1,2 +1,4 @@
|
||||
# typeorm-model-generator
|
||||
Generates models for TypeORM from existing databases.
|
||||
|
||||
*Work in progress*
|
@ -1,5 +1,8 @@
|
||||
import { MssqlDriver } from './drivers/MssqlDriver'
|
||||
import { AbstractDriver } from "./drivers/AbstractDriver";
|
||||
import * as Mustache from 'mustache'
|
||||
import fs = require('fs');
|
||||
import path = require('path')
|
||||
/**
|
||||
* Engine
|
||||
*/
|
||||
@ -21,7 +24,23 @@ export class Engine {
|
||||
|
||||
}
|
||||
private createModelFromMetadata(databaseModel: DatabaseModel) {
|
||||
|
||||
let templatePath = path.resolve(__dirname,'entity.mst')
|
||||
let template = fs.readFileSync(templatePath,'UTF-8');
|
||||
let resultPath = path.resolve(__dirname,'../results')
|
||||
fs.writeFileSync(path.resolve(resultPath,'tsconfig.json'),`{"compilerOptions": {
|
||||
"lib": ["es5", "es6"],
|
||||
"target": "es6",
|
||||
"module": "commonjs",
|
||||
"moduleResolution": "node",
|
||||
"emitDecoratorMetadata": true,
|
||||
"experimentalDecorators": true,
|
||||
"sourceMap": true
|
||||
}}`,{encoding:'UTF-8',flag:'w'});
|
||||
databaseModel.entities.forEach(element => {
|
||||
let resultFilePath = path.resolve(resultPath,element.EntityName+'.ts');
|
||||
let rendered = Mustache.render(template, element);
|
||||
fs.writeFileSync(resultFilePath,rendered,{encoding:'UTF-8',flag:'w'})
|
||||
});
|
||||
}
|
||||
}
|
||||
export interface EngineOptions {
|
||||
|
11
src/entity.mst
Normal file
11
src/entity.mst
Normal file
@ -0,0 +1,11 @@
|
||||
import {Entity, PrimaryColumn, Column, OneToMany, ManyToOne, JoinTable} from "typeorm";
|
||||
|
||||
@Entity()
|
||||
export class {{EntityName}} {
|
||||
|
||||
{{#Columns}}
|
||||
|
||||
@Column()
|
||||
{{name}}:{{data_type}};
|
||||
{{/Columns}}
|
||||
}
|
@ -65,6 +65,8 @@ let engine = new Engine(
|
||||
password: argv.x
|
||||
});
|
||||
|
||||
console.log(`[${new Date().toLocaleTimeString()}] Starting creation of model classes.`);
|
||||
engine.createModelFromDatabase().then( ()=>{
|
||||
// process.abort();
|
||||
console.info(`[${new Date().toLocaleTimeString()}] Typeorm model classes created.`)
|
||||
})
|
||||
|
@ -12,5 +12,7 @@
|
||||
"stripInternal": true,
|
||||
"strictNullChecks": true,
|
||||
"moduleResolution": "node"
|
||||
}
|
||||
}, "include": [
|
||||
"src"
|
||||
]
|
||||
}
|
Loading…
Reference in New Issue
Block a user