-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathfileComposition.jsonc
118 lines (118 loc) · 3.2 KB
/
fileComposition.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
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
{
// !!! This configuration is just an example and is used in .eslintrc !!!
"$schema": "node_modules/eslint-plugin-project-structure/fileComposition.schema.json",
"filesRules": [
{ "filePattern": "**/*.(test|api|stories).(ts|tsx)" },
{
"filePattern": "**/*.consts.ts",
"allowOnlySpecifiedSelectors": true,
"rules": [{ "selector": "variable", "format": "{SNAKE_CASE}" }]
},
{
"filePattern": "**/*.types.ts",
"allowOnlySpecifiedSelectors": true,
"rules": [
{ "selector": ["interface", "type"], "format": "{PascalCase}" },
{ "selector": "enum", "format": "{SNAKE_CASE}" }
]
},
{
"filePattern": "**/*.tsx",
"allowOnlySpecifiedSelectors": {
"error": {
"variable": "Move all variables to .consts file.",
"enum": "Move all enums to .types file."
}
},
"rootSelectorsLimits": [
{ "selector": ["interface", "type"], "limit": 2 }
],
"rules": [
{
"selector": ["interface", "type"],
"scope": "fileExport",
"positionIndex": 0,
"format": "{FileName}Props"
},
{
"selector": ["interface", "type"],
"scope": "fileRoot",
"positionIndex": 0,
"format": "Props"
},
{
"selector": ["interface", "type"],
"scope": "fileExport",
"positionIndex": 1,
"format": "{FileName}Return"
},
{
"selector": ["interface", "type"],
"scope": "fileRoot",
"positionIndex": 1,
"format": "Return"
},
{
"selector": "arrowFunction",
"scope": "fileExport",
"positionIndex": 2,
"format": "{FileName}"
},
{
"selector": ["arrowFunction", "variable"],
"scope": "nestedSelectors",
"format": "{camelCase}"
}
]
},
{
"filePattern": "**/*.ts",
"allowOnlySpecifiedSelectors": {
"error": {
"variable": "Move all variables to .consts file.",
"enum": "Move all enums to .types file."
}
},
"rootSelectorsLimits": [
{ "selector": ["interface", "type"], "limit": 2 }
],
"rules": [
{
"selector": ["interface", "type"],
"scope": "fileExport",
"positionIndex": 0,
"format": "{FileName}Props"
},
{
"selector": ["interface", "type"],
"scope": "fileRoot",
"positionIndex": 0,
"format": "Props"
},
{
"selector": ["interface", "type"],
"scope": "fileExport",
"positionIndex": 1,
"format": "{FileName}Return"
},
{
"selector": ["interface", "type"],
"scope": "fileRoot",
"positionIndex": 1,
"format": "Return"
},
{
"selector": "arrowFunction",
"scope": "fileExport",
"positionIndex": 2,
"format": "{fileName}"
},
{
"selector": ["arrowFunction", "variable"],
"scope": "nestedSelectors",
"format": "{camelCase}"
}
]
}
]
}