-
Notifications
You must be signed in to change notification settings - Fork 0
/
plopfile.mjs
56 lines (53 loc) · 1.41 KB
/
plopfile.mjs
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
const componentDir = "dextra-components/src/components/";
const storiesDir = "dextra-components/src/stories/";
const elementTypes = [
{
name: "Root Component",
description: "A Basic Lit Element",
plopDir: "root"
},
{
name: "Interface Component",
description: "An element to modify parameters, like forms or inputs",
plopDir: "interface"
},
{
name: "Data Component",
description: "An element to display data, like tables, charts, or maps",
plopDir: "data"
},
{
name: "Mark Component",
description: "A Chart Mark based on observablehq plot",
plopDir: "mark",
outputSubfolder: "marks/"
}
]
export default function (plop) {
elementTypes.forEach((type) => {
plop.setGenerator(type.name, {
description: type.description,
prompts: [
{
type: "input",
name: "name",
message: "Name your component",
},
],
actions: [
{
type: "addMany",
base: `plop-templates/${type.plopDir}`,
destination: `${componentDir}/${type.outputSubfolder || ''}{{titleCase name}}`,
templateFiles: `plop-templates/${type.plopDir}/**/*`
},
{
type: "addMany",
base: `plop-templates/${type.plopDir}Story`,
destination: `${storiesDir}/`,
templateFiles: `plop-templates/${type.plopDir}Story/**/*`,
},
],
});
});
}