-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathfolderStructure.jsonc
99 lines (89 loc) · 2.62 KB
/
folderStructure.jsonc
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
{
// !!! This configuration is just an example and is used in .eslintrc !!!
"$schema": "node_modules/eslint-plugin-project-structure/folderStructure.schema.json",
"structureRoot": "src",
"structure": [
{ "ruleId": "hooks_folder" },
{ "ruleId": "examples_folder" },
{ "name": "features", "ruleId": "components_folder" }
],
"rules": {
"hook_folder": {
"name": "use{PascalCase}",
"children": [
{ "ruleId": "hooks_folder" },
// This rule will only be considered when the final nesting of the hooks_folder rule occurs.
{
"name": "hooks",
"children": [{ "name": "use{PascalCase}(.test)?.ts" }]
},
{ "name": "{folderName}(.(test|api|types|consts))?.ts" }
]
},
"hooks_folder": {
"name": "hooks",
"folderRecursionLimit": 2,
"children": [
{ "ruleId": "hook_folder" },
{ "name": "use{PascalCase}(.test)?.ts" }
]
},
"component_folder": {
"name": "{PascalCase}",
"children": [
{ "ruleId": "components_folder" },
{ "ruleId": "hooks_folder" },
{ "name": "{folderName}.(api|types|consts).ts" },
{ "name": "{FolderName}(.test)?.tsx" }
]
},
"components_folder": {
"name": "components",
"children": [
{ "ruleId": "component_folder" },
{ "name": "{PascalCase}(.test)?.tsx" }
]
},
"onlyFilesExample_folder": {
"name": "onlyFilesExample",
"children": [{ "name": "{camelCase}.ts" }]
},
"onlyFoldersExample_folder": {
"name": "onlyFoldersExample",
"children": [
{ "name": "{camelCase}", "children": [{ "name": "{camelCase}.ts" }] }
]
},
"extensionsExample_folder": {
"name": "extensionsExample",
"children": [{ "name": "{SNAKE_CASE}.(svg|jpg|png|ico)" }]
},
"enforceExistenceExample_folder": {
"name": "enforceExistenceExample",
"children": [
{
"name": "stories",
"children": [{ "name": "{camelCase}.stories.tsx" }]
},
{ "name": "{PascalCase}.test.tsx" },
{
"name": "{PascalCase}.tsx",
"enforceExistence": [
"stories/{nodeName}.stories.tsx",
"{NodeName}.test.tsx"
]
}
]
},
"examples_folder": {
"name": "examples",
"children": [
{ "ruleId": "enforceExistenceExample_folder" },
{ "ruleId": "extensionsExample_folder" },
{ "ruleId": "onlyFilesExample_folder" },
{ "ruleId": "onlyFoldersExample_folder" },
{ "name": "{camelCase}Example.(ts|tsx)" }
]
}
}
}