You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
wiki/backend/tsconfig.json

38 lines
1.3 KiB

{
"compilerOptions": {
// -> Node 26 runs TypeScript directly by stripping types at load time, so there is
// no build step. `tsc` is only ever used as a type checker (see `npm run typecheck`).
"noEmit": true,
// -> Module resolution matching Node's own ESM resolver
"module": "nodenext",
"moduleResolution": "nodenext",
"target": "esnext",
"lib": ["esnext"],
"types": ["node"],
"resolveJsonModule": true,
// -> Required for type stripping:
// Node needs the real on-disk specifier, so relative imports must say `.ts`.
"allowImportingTsExtensions": true,
// Node can only erase types, never transform them. Bans enums, namespaces,
// parameter properties and anything else that emits runtime code.
"erasableSyntaxOnly": true,
// Forces `import type` for type-only imports, so nothing survives erasure.
"verbatimModuleSyntax": true,
"isolatedModules": true,
// -> The backend is fully TypeScript; the only remaining .js is generated/vendored content
// (locales/metadata.js), which is excluded below.
"allowJs": false,
// -> Correctness
"strict": true,
"noImplicitOverride": true,
"forceConsistentCasingInFileNames": true,
"skipLibCheck": true
},
"include": ["**/*.ts"],
"exclude": ["node_modules", "db/migrations", "locales"]
}