-
Notifications
You must be signed in to change notification settings - Fork 4
/
plopfile.js
85 lines (85 loc) · 1.88 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
/* eslint-disable no-undef */
module.exports = function (plop) {
// screen generator
plop.setGenerator('page', {
description: 'add new page to app',
prompts: [
{
type: 'input',
name: 'name',
message: 'Type page name in CamelCase',
},
],
actions: [
{
type: 'add',
path: 'src/pages/{{lowerCase name}}/index.js',
templateFile: 'templates/page.hbs',
},
{
type: 'add',
path: 'src/pages/{{lowerCase name}}/store.js',
templateFile: 'templates/store.hbs',
},
],
});
// component generator
plop.setGenerator('feature', {
description: 'add new feature to app',
prompts: [
{
type: 'input',
name: 'name',
message: 'Type feature name in CamelCase',
},
],
actions: [
{
type: 'add',
path: 'src/features/{{name}}/index.js',
templateFile: 'templates/feature.hbs',
},
{
type: 'add',
path: 'src/features/{{name}}/store.js',
templateFile: 'templates/store.hbs',
},
],
});
// style component generator
plop.setGenerator('component', {
description: 'add new component to app',
prompts: [
{
type: 'input',
name: 'name',
message: 'Type component name in CamelCase',
},
],
actions: [
{
type: 'add',
path: 'src/components/{{name}}.js',
templateFile: 'templates/component.hbs',
},
],
});
// style generator
plop.setGenerator('style', {
description: 'add new styled component to app',
prompts: [
{
type: 'input',
name: 'name',
message: 'Type file name in CamelCase',
},
],
actions: [
{
type: 'add',
path: 'src/components/{{name}}.js',
templateFile: 'templates/style.hbs',
},
],
});
};