1- import { flags , Command } from '@oclif/command' ;
2- import { resolve as resolvePath , sep } from 'path' ;
1+ import { Command , flags } from '@oclif/command' ;
2+ import { sep } from 'path' ;
3+ import { schematicsCommandBuilder } from '../utils/schematics-command-builder' ;
34const npmRun = require ( 'npm-run' ) ;
45
56export class AngularEntity extends Command {
67 static aliases = [ 'entity:angular' , 'angular-entity' ] ;
78 static description = 'generate frontend model, service, grid, lookup input, modal for edit row in grid, modal for select items from grid with items for Angular 6+ application based on Rucken template' ;
89 static flags = {
910 help : flags . help ( { char : 'h' } ) ,
11+ template : flags . string ( { char : 't' , description : 'template' , default : '@rucken/schematics:angular-entity' } ) ,
1012 name : flags . string ( { char : 'n' , description : 'entity singular name on ke-bab case' , required : true } ) ,
1113 fields : flags . string ( { char : 'f' , description : 'entity fields' , default : '[name]' } ) ,
1214 username : flags . string ( { char : 'u' , description : 'username' } ) ,
@@ -19,6 +21,7 @@ export class AngularEntity extends Command {
1921 async run ( ) {
2022 const { args, flags } = this . parse ( AngularEntity ) ;
2123 const folder = args . folder ;
24+ const template = flags . template || '' ;
2225 const name = flags . name ;
2326 const fields = flags . fields ;
2427 const username = flags . username ;
@@ -29,6 +32,7 @@ export class AngularEntity extends Command {
2932
3033 try {
3134 await this . runEntity (
35+ template ,
3236 folder ,
3337 name ,
3438 fields ,
@@ -43,6 +47,7 @@ export class AngularEntity extends Command {
4347 }
4448 }
4549 private runEntity (
50+ template : string ,
4651 folder : string ,
4752 name : string ,
4853 fields ?: string ,
@@ -53,6 +58,7 @@ export class AngularEntity extends Command {
5358 web ?: string
5459 ) {
5560 this . debug ( 'Start' , {
61+ template : template ,
5662 folder : folder ,
5763 name : name ,
5864 fields : fields ,
@@ -64,18 +70,20 @@ export class AngularEntity extends Command {
6470 } ) ;
6571 return new Promise ( ( resolve , reject ) => {
6672 const inputFolder = folder ? folder . replace ( new RegExp ( '\\' + sep , 'g' ) , '/' ) . split ( sep ) . join ( '/' ) : undefined ;
67- const command = 'node ' +
68- resolvePath ( __dirname , '../../node_modules/@angular-devkit/schematics-cli/bin/schematics.js' ) +
69- ' @rucken/schematics:angular-entity ' +
70- ( inputFolder ? ( '--root=' + inputFolder + ' ' ) : ' ' ) +
71- ( name ? ( '--name=' + name + ' ' ) : ' ' ) +
72- ( fields ? ( '--fields=' + fields + ' ' ) : ' ' ) +
73- ( username ? ( '--username=' + username + ' ' ) : ' ' ) +
74- ( email ? ( '--email=' + email + ' ' ) : ' ' ) +
75- ( app ? ( '--app=' + app + ' ' ) : ' ' ) +
76- ( core ? ( '--core=' + core + ' ' ) : ' ' ) +
77- ( web ? ( '--web=' + web + ' ' ) : ' ' ) +
78- '--dry-run=false --force' ;
73+ const command = schematicsCommandBuilder (
74+ inputFolder as string ,
75+ template ,
76+ {
77+ root : inputFolder ,
78+ name : name ,
79+ fields : fields ,
80+ username : username ,
81+ email : email ,
82+ app : app ,
83+ core : core ,
84+ web : web
85+ }
86+ ) ;
7987 this . debug ( 'command' , command ) ;
8088 npmRun . exec (
8189 command ,
0 commit comments