fafe02bdbd
通过并行 explore + librarian + 自查发现并修复: 代码缺陷 - shutdown.ts: db.$client.end().finally(...) 静默吞错——关闭失败会 谎报 "DB pool closed" 后照常 exit 0。改用 await + try/catch 分别记录成功/失败,setTimeout 也换成 Bun.sleep。 - interceptors.ts: 两条 instanceof ORPCError && instanceof ValidationError 重复检查,改用 early return + 单 if 分支区分 code。 - types.ts: 移除从未被引用的 RouterInputs 死代码(仅 RouterOutputs 被 TodoItem 用到)。 Bun 原生 API(删/换 Node 兼容层) - fields.ts: uuid v7 → Bun.randomUUIDv7(),删除 uuid 依赖 - migrate.ts: node:crypto.createHash → Bun.CryptoHasher.hash, 少一个 Promise.all 项 + 一个 import - shutdown.ts: setTimeout → Bun.sleep(顺带) Biome 2.4 规则补强 - domains.types: "all"——开启类型感知规则集(noFloatingPromises / noMisusedPromises / useAwaitThenable / noUnnecessaryConditions 等 Promise/异步陷阱) - domains.drizzle: "recommended"、domains.react: "recommended" - 显式开启 suspicious.noImportCycles(2.4 已 promote) 文档 - AGENTS.md 在 Stack & runtime 段加 "Prefer Bun-native APIs" 原则,列出 UUIDv7/SHA-256/sleep/Bun.file 的优先路径 - AGENTS.md 在 Code style (Biome) 段记录本次启用的 lint domain 与 noImportCycles 规则 验证:fix / typecheck / test 3/3 / build 568ms / compile 117M / docker compose 全套(migrate JSON 日志 ✓、UUIDv7 写入 ✓、SIGTERM shutdown 正确序列化 ✓)
64 lines
1.2 KiB
JSON
64 lines
1.2 KiB
JSON
{
|
|
"$schema": "./node_modules/@biomejs/biome/configuration_schema.json",
|
|
"vcs": {
|
|
"enabled": true,
|
|
"clientKind": "git",
|
|
"useIgnoreFile": true
|
|
},
|
|
"files": {
|
|
"ignoreUnknown": false,
|
|
"includes": ["**", "!**/routeTree.gen.ts", "!**/migrations.gen.ts"]
|
|
},
|
|
"formatter": {
|
|
"enabled": true,
|
|
"indentStyle": "space",
|
|
"lineEnding": "lf",
|
|
"lineWidth": 120
|
|
},
|
|
"linter": {
|
|
"enabled": true,
|
|
"domains": {
|
|
"drizzle": "recommended",
|
|
"react": "recommended",
|
|
"types": "all"
|
|
},
|
|
"rules": {
|
|
"recommended": true,
|
|
"complexity": {
|
|
"useArrowFunction": "error"
|
|
},
|
|
"correctness": {
|
|
"noReactPropAssignments": "error"
|
|
},
|
|
"style": {
|
|
"noNonNullAssertion": "error"
|
|
},
|
|
"suspicious": {
|
|
"noExplicitAny": "error",
|
|
"noImportCycles": "error",
|
|
"noTsIgnore": "error"
|
|
}
|
|
}
|
|
},
|
|
"javascript": {
|
|
"formatter": {
|
|
"quoteStyle": "single",
|
|
"semicolons": "asNeeded",
|
|
"arrowParentheses": "always"
|
|
}
|
|
},
|
|
"css": {
|
|
"parser": {
|
|
"tailwindDirectives": true
|
|
}
|
|
},
|
|
"assist": {
|
|
"enabled": true,
|
|
"actions": {
|
|
"source": {
|
|
"organizeImports": "on"
|
|
}
|
|
}
|
|
}
|
|
}
|