-
-
Notifications
You must be signed in to change notification settings - Fork 6
Expand file tree
/
Copy pathbiome.jsonc
More file actions
128 lines (128 loc) · 3.99 KB
/
biome.jsonc
File metadata and controls
128 lines (128 loc) · 3.99 KB
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
{
"$schema": "./node_modules/@biomejs/biome/configuration_schema.json",
"extends": ["ultracite/core"],
"plugins": [
"./lint-rules/no-stdout-write-in-commands.grit",
"./lint-rules/no-process-stdout-in-commands.grit",
"./lint-rules/no-raw-metadata-queries.grit",
"./lint-rules/no-manual-transactions.grit",
"./lint-rules/no-inline-touch-cache.grit"
],
"files": {
"includes": ["!docs", "!test/init-eval/templates"]
},
"javascript": {
"globals": ["Bun"]
},
"linter": {
"rules": {
"style": {
"noRestrictedImports": {
"level": "error",
"options": {
"paths": {
"@stricli/core": {
"importNames": ["buildCommand", "buildRouteMap"],
"message": "Import buildCommand from '../lib/command.js' and buildRouteMap from '../lib/route-map.js' instead. The wrappers inject telemetry and standard subcommand aliases."
}
}
}
}
}
}
},
"overrides": [
{
"includes": ["test/**/*.ts"],
"linter": {
"rules": {
"performance": {
"useTopLevelRegex": "off",
"noDelete": "off"
},
"style": {
"useBlockStatements": "off",
"noNonNullAssertion": "off"
},
"suspicious": {
"useAwait": "off"
}
}
}
},
{
// A few DB modules still have genuinely async functions (stat() for mtime validation,
// clearResponseCache for auth cleanup). The useAwait rule is off for these specific files.
"includes": [
"src/lib/db/dsn-cache.ts",
"src/lib/db/project-root-cache.ts",
"src/lib/db/auth.ts"
],
"linter": {
"rules": {
"suspicious": {
"useAwait": "off"
}
}
}
},
{
// src/index.ts is the library entry point — re-exports SentryError, SentryOptions, SentrySDK
// db/index.ts exports db connection utilities - not a barrel file but triggers the rule
// api-client.ts is a barrel that re-exports from src/lib/api/ domain modules
// to preserve the existing import path for all consumers
// markdown.ts re-exports isPlainOutput from plain-detect.ts for backward compat
// script/debug-id.ts re-exports from src/lib/sourcemap/debug-id.ts for build scripts
"includes": [
"src/index.ts",
"src/lib/db/index.ts",
"src/lib/api-client.ts",
"src/lib/formatters/markdown.ts",
"script/debug-id.ts"
],
"linter": {
"rules": {
"performance": {
"noBarrelFile": "off"
}
}
}
},
{
// command.ts and route-map.ts are the canonical wrappers — they must import from @stricli/core
"includes": ["src/lib/command.ts", "src/lib/route-map.ts"],
"linter": {
"rules": {
"style": {
"noRestrictedImports": "off"
}
}
}
},
{
// Commands must use colorTag() from markdown.ts — not raw chalk.
// Raw chalk bypasses the plain-output pipeline (NO_COLOR, SENTRY_PLAIN_OUTPUT).
"includes": ["src/commands/**/*.ts"],
"linter": {
"rules": {
"style": {
"noRestrictedImports": {
"level": "error",
"options": {
"paths": {
"@stricli/core": {
"importNames": ["buildCommand", "buildRouteMap"],
"message": "Import buildCommand from '../lib/command.js' and buildRouteMap from '../lib/route-map.js' instead. The wrappers inject telemetry and standard subcommand aliases."
},
"chalk": {
"message": "Use colorTag() from formatters/markdown.js for colored output. Raw chalk bypasses the plain-output pipeline (NO_COLOR, SENTRY_PLAIN_OUTPUT)."
}
}
}
}
}
}
}
}
]
}