- app.ts 单体路由拆分为 routes/ + helpers + middleware + static 独立模块 - 类型去重:CheckFailure/CheckResult 以 shared/api.ts 为唯一源头,收紧 phase 联合类型 - es-toolkit 替换:isPlainObject/isNil/isEmptyObject/isEqual/isError/Semaphore/groupBy - Bun 内置 API:Object.fromEntries 替代手写 headersToRecord - bun:sqlite 规范:prepare() → query() 利用内置缓存,避免 N+1 查询 - 新增 getLatestChecksMap/allGetTargetStats 批量查询方法 - 新增 backend-code-quality/api-route-separation/batch-data-queries 规范 - 补充 openspec/config.yaml 后端开发规范与 DEVELOPMENT.md 后端开发指引
50 lines
1.5 KiB
JSON
50 lines
1.5 KiB
JSON
{
|
|
"name": "dial-server",
|
|
"type": "module",
|
|
"private": true,
|
|
"scripts": {
|
|
"dev": "bun run scripts/dev.ts",
|
|
"dev:server": "bun --watch src/server/dev.ts",
|
|
"dev:web": "bunx --bun vite --host 127.0.0.1",
|
|
"build:web": "bunx --bun vite build",
|
|
"build": "bun run scripts/build.ts",
|
|
"start": "bun src/server/dev.ts",
|
|
"lint": "eslint .",
|
|
"format": "prettier . --write",
|
|
"format:check": "prettier . --check",
|
|
"check": "bun run typecheck && bun run lint && bun run format:check && bun test",
|
|
"verify": "bun run check && bun run build && bun run test:smoke",
|
|
"test": "bun test",
|
|
"test:smoke": "bun run scripts/smoke.ts",
|
|
"clean": "bun run scripts/clean.ts",
|
|
"typecheck": "tsc --noEmit"
|
|
},
|
|
"devDependencies": {
|
|
"@eslint/js": "^10.0.1",
|
|
"@tanstack/react-query-devtools": "^5.100.10",
|
|
"@types/bun": "^1.3.13",
|
|
"@types/react": "^19.2.14",
|
|
"@types/react-dom": "^19.2.3",
|
|
"@vitejs/plugin-react": "^6.0.1",
|
|
"eslint": "^10.3.0",
|
|
"eslint-plugin-react-hooks": "^7.1.1",
|
|
"eslint-plugin-react-refresh": "^0.5.2",
|
|
"prettier": "^3.8.3",
|
|
"typescript": "^6.0.3",
|
|
"typescript-eslint": "^8.59.2",
|
|
"vite": "^8.0.11"
|
|
},
|
|
"dependencies": {
|
|
"@tanstack/react-query": "^5.100.10",
|
|
"@xmldom/xmldom": "^0.9.10",
|
|
"cheerio": "^1.2.0",
|
|
"es-toolkit": "^1.46.1",
|
|
"react": "^19.2.6",
|
|
"react-dom": "^19.2.6",
|
|
"recharts": "^3.8.1",
|
|
"tdesign-icons-react": "^0.6.4",
|
|
"tdesign-react": "^1.16.9",
|
|
"xpath": "^0.0.34"
|
|
}
|
|
}
|