🔧 Replace Vite/Vitest with TypeScript 7 and node --test

- Use tsc 7 for build (vite no longer needed for a Node library)
- Use node --test with --experimental-strip-types for tests (vitest dropped)
- Use c8 for coverage instead of vitest's built-in coverage
- Add tsconfig.build.json separating typecheck from emit config
- Drop DOM lib, add strict noUncheckedIndexedAccess/noImplicitOverride
- Pin engines.node to >=22.6 (required for --experimental-strip-types)
- Update CI to Node 24 LTS (unflagged strip-types)
- Add @types/node for node:test / node:assert types
This commit is contained in:
tmu committed 2026-09-03 09:54:21 +00:00
1 parent cac1349c95
commit 3530262261
7 files changed
+3638 -7424

No files matched your search

+13 -22
View File
@@ -1,20 +1,11 @@
{
"compilerOptions": {
"target": "ES2022",
"useDefineForClassFields": true,
"module": "ESNext",
"lib": [
"ES2022",
"DOM"
],
"skipLibCheck": true,
/* Bundler mode */
"moduleResolution": "Node",
"allowImportingTsExtensions": true,
"isolatedModules": true,
"target": "es2024",
"module": "nodenext",
"moduleResolution": "nodenext",
"moduleDetection": "force",
"noEmit": false,
/* Linting */
"lib": ["es2024"],
"skipLibCheck": true,
"strict": true,
"noImplicitAny": true,
"noImplicitThis": true,
@@ -25,22 +16,22 @@
"strictPropertyInitialization": true,
"noImplicitReturns": true,
"noFallthroughCasesInSwitch": true,
"noUncheckedIndexedAccess": true,
"noImplicitOverride": true,
"forceConsistentCasingInFileNames": true,
"noUnusedLocals": true,
"noUnusedParameters": true,
"noUncheckedSideEffectImports": true,
"isolatedModules": true,
"verbatimModuleSyntax": true,
"declaration": true,
"declarationMap": true,
"sourceMap": true,
"outDir": "dist",
"esModuleInterop": true,
"allowSyntheticDefaultImports": true,
"resolveJsonModule": true,
"composite": false,
"types": [
"vitest"
]
"types": ["node"]
},
"include": [
"src"
]
}
"include": ["src"]
}