{ "compilerOptions": { "target": "ES2023", "module": "commonjs", "moduleResolution": "node", "lib": ["ES2023"], "outDir": "dist", "rootDir": "src", "strict": true, "esModuleInterop": true, "skipLibCheck": true, "forceConsistentCasingInFileNames": true, "declaration": false, "sourceMap": false, // Relative imports carry `.ts` and TypeScript rewrites them to `.js` on // emit. This is what lets the SAME source run two ways: compiled to // dist/ for the image, and under Node's strip-only type stripping for // `node --test`, which resolves imports by their real filename. Without it // any src module that imports another src module is untestable. "allowImportingTsExtensions": true, "rewriteRelativeImportExtensions": true }, "include": ["src/**/*.ts"], "exclude": ["node_modules", "dist", "test"] }