This repository has been archived by the owner on Sep 12, 2023. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathplopfile.js
109 lines (109 loc) · 3.1 KB
/
plopfile.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
module.exports = (plop) => {
plop.setGenerator('entity', {
description: 'Create an entity',
prompts: [
{
type: 'list',
name: 'entityType',
message: 'Choose entity type',
choices: ['component', 'hook', 'page', 'type', 'interface', 'enum']
},
{
type: 'input',
name: 'name',
message: 'Enter entity name'
}
],
actions: (data) => {
if (data.entityType === 'component') {
return [
{
type: 'add',
path: 'components/{{pascalCase name}}/{{pascalCase name}}.tsx',
templateFile: 'plop-templates/Component/Component.tsx.hbs'
},
{
type: 'add',
path: 'components/{{pascalCase name}}/test.tsx',
templateFile: 'plop-templates/Component/test.tsx.hbs'
},
{
type: 'add',
path: 'components/{{pascalCase name}}/index.ts',
templateFile: 'plop-templates/Component/index.ts.hbs'
},
{
type: 'append',
path: 'components/index.ts',
separator: '',
templateFile: 'plop-templates/Component/exportAll.ts.hbs'
}
]
} else if (data.entityType === 'hook') {
return [
{
type: 'add',
path: 'hooks/{{camelCase name}}.ts',
templateFile: 'plop-templates/Hook/Hook.ts.hbs'
},
{
type: 'append',
path: 'hooks/index.ts',
separator: '',
templateFile: 'plop-templates/Hook/exportAll.ts.hbs'
}
]
} else if (data.entityType === 'page') {
return [
{
type: 'add',
path: 'pages/{{kebabCase name}}.tsx',
templateFile: 'plop-templates/Page/Page.tsx.hbs'
}
]
} else if (data.entityType === 'type') {
return [
{
type: 'add',
path: 'types/T{{pascalCase name}}.ts',
templateFile: 'plop-templates/Type/Type.ts.hbs'
},
{
type: 'append',
path: 'types/index.ts',
separator: '',
templateFile: 'plop-templates/Type/exportAll.ts.hbs'
}
]
} else if (data.entityType === 'interface') {
return [
{
type: 'add',
path: 'types/I{{pascalCase name}}.ts',
templateFile: 'plop-templates/Interface/Interface.ts.hbs'
},
{
type: 'append',
path: 'types/index.ts',
separator: '',
templateFile: 'plop-templates/Interface/exportAll.ts.hbs'
}
]
} else if (data.entityType === 'enum') {
return [
{
type: 'add',
path: 'types/E{{pascalCase name}}.ts',
templateFile: 'plop-templates/Enum/Enum.ts.hbs'
},
{
type: 'append',
path: 'types/index.ts',
separator: '',
templateFile: 'plop-templates/Enum/exportAll.ts.hbs'
}
]
}
}
})
}