-
Notifications
You must be signed in to change notification settings - Fork 0
/
biome.jsonc
148 lines (148 loc) · 3.1 KB
/
biome.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
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
{
"$schema": "https://biomejs.dev/schemas/1.9.3/schema.json",
"linter": {
"rules": {
"correctness": {
"noUnusedImports": "error",
"noUnusedVariables": "error",
"noUnusedPrivateClassMembers": "error",
"useArrayLiterals": "error",
"useHookAtTopLevel": "error",
"useExhaustiveDependencies": {
"level": "error",
"options": {
"hooks": [
{
"name": "useLiveQuery", // react-dexie
"closureIndex": 0,
"dependenciesIndex": 1
}
]
}
}
},
"nursery": {
"useSortedClasses": {
"level": "error",
"options": {
"attributes": ["className"], // react
"functions": ["cn"] // shared/ui/cn.ts
}
}
},
"performance": {
"noBarrelFile": "error"
},
"style": {
"noDefaultExport": "error",
"noNamespace": "error",
"noNamespaceImport": "error",
"noNegationElse": "error",
"useBlockStatements": "error",
"useCollapsedElseIf": "error",
"useConsistentArrayType": {
"level": "error",
"options": {
"syntax": "generic"
}
},
"useFilenamingConvention": {
"level": "error",
"options": {
"requireAscii": true,
"filenameCases": ["kebab-case"]
}
},
"useForOf": "error",
"useFragmentSyntax": "error",
"useNamingConvention": "error",
"useShorthandAssign": "error"
},
"suspicious": {
"noConsoleLog": "error",
"useAwait": "error",
"noConstEnum": "error"
}
}
},
"formatter": {
"attributePosition": "multiline"
},
"files": {
"ignore": [
".DS_Store",
".idea",
"node_modules",
"dist",
"coverage",
"playwright-report",
"test-results",
".react-router",
".env",
".wrangler",
".vercel",
"data",
".obsidian",
".astro",
".vscode",
".husky/_"
]
},
"overrides": [
{
"include": [
"*.config.ts", // root level configs use default exports
"packages/*/*.config.ts", // root level config for workspaces
"src/main.ts", // some engines and frameworks use default exports
"src/routes.ts", // react router
"src/root.tsx", // react router
"*.page.tsx" // react router
],
"linter": {
"rules": {
"style": {
"noDefaultExport": "off"
}
}
}
},
{
"include": ["*.spec.ts", "*.spec.tsx"], // because in order to mock top-level function, the test suite should import the whole ESModule
"linter": {
"rules": {
"style": {
"noNamespaceImport": "off"
}
}
}
},
{
"include": ["**/tsconfig.json", "**/tsconfig.*.json"], // its really JSONC/JSON5 format despite the name
"json": {
"parser": {
"allowComments": true
}
}
},
{
"include": ["**/package.json"], // because NPM CLI doesn't preserve format and put new lines where it shouldn't by formatter definitions, so the only option is to obey to NPM
"formatter": {
"lineWidth": 1
}
},
{
"include": ["**/*.astro"],
"linter": {
"rules": {
"correctness": {
"noUnusedImports": "off",
"noUnusedVariables": "off"
},
"style": {
"useFilenamingConvention": "off"
}
}
}
}
]
}