{ "compilerOptions": { "target": "ES2022", "module": "NodeNext", "moduleResolution": "NodeNext", "lib": ["ES2023"], "strict": true, "noUncheckedIndexedAccess": true, "noImplicitOverride": true, /* * This project is compiled now, rather than run straight off `src/*.ts`. * * The reason is a fifteen-hour crash loop: the unit's ExecStart named `src/index.ts`, * the host's `/usr/bin/node` was 20, and native type stripping is 22.18 and newer, so * every start died on ERR_UNKNOWN_FILE_EXTENSION and systemd restarted it 464 times * without anything going red. Emitting plain `.js` removes the host's Node version * from the set of things that can break a deploy. * * `rewriteRelativeImportExtensions` is what lets the source keep its explicit `.ts` * specifiers — which is what makes `node --watch src/index.ts` work in development — * while the emitted files import `./config.js` and run anywhere. */ "outDir": "dist", "rootDir": "src", "sourceMap": true, "allowImportingTsExtensions": true, "rewriteRelativeImportExtensions": true, "skipLibCheck": true, "types": ["node"], "resolveJsonModule": true }, "include": ["src/**/*.ts"] }