-
Notifications
You must be signed in to change notification settings - Fork 0
/
biome.jsonc
127 lines (127 loc) · 2.71 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
{
"$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"
]
},
"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
],
"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
}
}
]
}