1
- import { GluegunCommand , GluegunToolbox } from 'gluegun' ;
2
- import { GluegunAskResponse } from 'gluegun/build/types/toolbox/prompt-types' ;
1
+ import { GluegunCommand , GluegunToolbox , strings } from 'gluegun' ;
3
2
4
- import { printCreated } from '../../../../utils/functions.helper' ;
3
+ import { getEntityName , getEntityPath , printCreated } from '../../../../utils/functions.helper' ;
5
4
6
5
const COMMAND : GluegunCommand = {
7
6
name : 'common' ,
8
7
alias : [ 'c' ] ,
9
8
description : 'cria um serviço Angular' ,
10
9
run : async ( toolbox : GluegunToolbox ) => {
11
- const { parameters, print, prompt, template, strings } = toolbox ;
10
+ const { parameters, print, prompt, template } = toolbox ;
11
+ const {
12
+ options : { path }
13
+ } = parameters ;
12
14
13
- let serviceName = parameters . first ;
14
-
15
- if ( ! serviceName ) {
16
- const response : GluegunAskResponse = await prompt . ask ( {
17
- type : 'input' ,
18
- name : 'serviceName' ,
19
- message : 'Qual o nome do serviço?' ,
20
- validate : ( value : string ) => {
21
- if ( ! value ) {
22
- return 'O nome do serviço não pode ser vazio' ;
23
- }
24
-
25
- return true ;
26
- }
27
- } ) ;
28
-
29
- serviceName = response . serviceName ;
30
- }
31
-
32
- const serviceNameKebab = strings . kebabCase ( serviceName ) ;
15
+ const serviceName = parameters . first ?? ( await getEntityName ( prompt , 'service' ) ) ;
16
+ const servicePath = getEntityPath ( path , serviceName ) ;
33
17
34
18
template . generate ( {
35
19
template : 'service.template.ts.ejs' ,
36
- target : `./ ${ serviceNameKebab } / ${ serviceNameKebab } .service.ts` ,
20
+ target : `${ servicePath } .service.ts` ,
37
21
props : {
38
22
type : 'service' ,
39
23
name : serviceName ,
@@ -43,16 +27,16 @@ const COMMAND: GluegunCommand = {
43
27
44
28
template . generate ( {
45
29
template : 'service.template.spec.ts.ejs' ,
46
- target : `./ ${ serviceNameKebab } / ${ serviceNameKebab } .service.spec.ts` ,
30
+ target : `${ servicePath } .service.spec.ts` ,
47
31
props : {
48
32
type : 'service' ,
49
33
name : serviceName ,
50
34
...strings
51
35
}
52
36
} ) ;
53
37
54
- printCreated ( print , `${ serviceNameKebab } / ${ serviceNameKebab } .service.ts` ) ;
55
- printCreated ( print , `${ serviceNameKebab } / ${ serviceNameKebab } .service.spec.ts` ) ;
38
+ printCreated ( print , `${ servicePath } .service.ts` ) ;
39
+ printCreated ( print , `${ servicePath } .service.spec.ts` ) ;
56
40
}
57
41
} ;
58
42
0 commit comments