parent
62c9318833
commit
f66ee271b5
@ -56,6 +56,8 @@ Options:
|
||||
--cp, --case-property Convert property names to specified case
|
||||
[choices: "pascal", "camel", "none"] [default: "none"]
|
||||
--lazy Generate lazy relations [boolean] [default: false]
|
||||
-a, --active-record Generate models that use the ActiveRecord syntax
|
||||
[boolean] [default: false]
|
||||
--namingStrategy Use custom naming strategy
|
||||
--relationIds Generate RelationId fields [boolean] [default: false]
|
||||
--generateConstructor Generate constructor allowing partial initialization
|
||||
|
@ -88,6 +88,7 @@ export class Engine {
|
||||
});
|
||||
});
|
||||
element.GenerateConstructor = this.Options.constructor;
|
||||
element.IsActiveRecord = this.Options.activeRecord;
|
||||
element.Imports.filter((elem, index, self) => {
|
||||
return index === self.indexOf(elem);
|
||||
});
|
||||
@ -274,6 +275,7 @@ export interface IEngineOptions {
|
||||
convertCaseProperty: "pascal" | "camel" | "none";
|
||||
propertyVisibility: "public" | "protected" | "private" | "none";
|
||||
lazy: boolean;
|
||||
activeRecord: boolean;
|
||||
constructor: boolean;
|
||||
namingStrategy: AbstractNamingStrategy;
|
||||
relationIds: boolean;
|
||||
|
@ -1,11 +1,25 @@
|
||||
import {Index,Entity, PrimaryColumn, PrimaryGeneratedColumn, Column, OneToOne, OneToMany, ManyToOne, ManyToMany, JoinColumn, JoinTable, RelationId} from "typeorm";
|
||||
import {
|
||||
BaseEntity,
|
||||
Column,
|
||||
Entity,
|
||||
Index,
|
||||
JoinColumn,
|
||||
JoinTable,
|
||||
ManyToMany,
|
||||
ManyToOne,
|
||||
OneToMany,
|
||||
OneToOne,
|
||||
PrimaryColumn,
|
||||
PrimaryGeneratedColumn,
|
||||
RelationId
|
||||
} from "typeorm";
|
||||
{{relationImports}}{{#each UniqueImports}}import {{curly true}}{{toEntityName this}}{{curly false}} from "./{{toFileName this}}";
|
||||
{{/each}}
|
||||
|
||||
|
||||
@Entity("{{EntityName}}"{{#Schema}},{schema:"{{.}}"}{{/Schema}})
|
||||
{{#Indexes}}{{^isPrimaryKey}}@Index("{{name}}",[{{#columns}}"{{toPropertyName name}}",{{/columns}}]{{#isUnique}},{unique:true}{{/isUnique}})
|
||||
{{/isPrimaryKey}}{{/Indexes}}export class {{toEntityName EntityName}} {
|
||||
{{/isPrimaryKey}}{{/Indexes}}export class {{toEntityName EntityName}}{{#if IsActiveRecord}} extends BaseEntity{{/if}} {
|
||||
{{#Columns}}
|
||||
|
||||
{{^relations}}{{#isGenerated}} @PrimaryGeneratedColumn({
|
||||
|
@ -92,6 +92,12 @@ const argv = Yargs.usage(
|
||||
default: false,
|
||||
describe: "Generate lazy relations"
|
||||
})
|
||||
.option("a", {
|
||||
alias: "active-record",
|
||||
boolean: true,
|
||||
default: false,
|
||||
describe: "Use ActiveRecord syntax for generated models"
|
||||
})
|
||||
.option("namingStrategy", {
|
||||
describe: "Use custom naming strategy"
|
||||
})
|
||||
@ -164,6 +170,7 @@ const engine = new Engine(driver, {
|
||||
databaseType: argv.e,
|
||||
host: argv.h,
|
||||
lazy: argv.lazy,
|
||||
activeRecord: argv.a,
|
||||
namingStrategy,
|
||||
noConfigs: argv.noConfig,
|
||||
password: argv.x ? argv.x.toString() : null,
|
||||
|
@ -8,6 +8,7 @@ export class EntityInfo {
|
||||
public Indexes: IndexInfo[];
|
||||
public Schema: string;
|
||||
public GenerateConstructor: boolean;
|
||||
public IsActiveRecord: boolean;
|
||||
|
||||
public relationImports() {
|
||||
const imports: string[] = [];
|
||||
|
Loading…
Reference in New Issue
Block a user