80 lines
No EOL
1.8 KiB
JSON
80 lines
No EOL
1.8 KiB
JSON
{
|
|
"compilerOptions": {
|
|
// Target modern JavaScript
|
|
"target": "ES2022",
|
|
"module": "ESNext",
|
|
"lib": ["ES2022", "DOM"],
|
|
"downlevelIteration": true,
|
|
|
|
// Enable ES modules
|
|
"moduleResolution": "node",
|
|
"esModuleInterop": true,
|
|
"allowSyntheticDefaultImports": true,
|
|
|
|
// Output settings - clean separation of source and build
|
|
"outDir": "./dist",
|
|
"rootDir": "./src",
|
|
"preserveConstEnums": true,
|
|
"removeComments": false,
|
|
|
|
// Type checking
|
|
"strict": true,
|
|
"noImplicitAny": true,
|
|
"strictNullChecks": true,
|
|
"strictFunctionTypes": true,
|
|
"strictBindCallApply": true,
|
|
"strictPropertyInitialization": true,
|
|
"noImplicitThis": true,
|
|
"alwaysStrict": true,
|
|
|
|
// Additional checks
|
|
"noUnusedLocals": true,
|
|
"noUnusedParameters": true,
|
|
"noImplicitReturns": true,
|
|
"noFallthroughCasesInSwitch": true,
|
|
"noUncheckedIndexedAccess": true,
|
|
"noImplicitOverride": true,
|
|
|
|
// Interop with JavaScript
|
|
"allowJs": false,
|
|
"checkJs": false,
|
|
"maxNodeModuleJsDepth": 0,
|
|
|
|
// Emit - minimal output for cleaner project
|
|
"declaration": false,
|
|
"declarationMap": false,
|
|
"sourceMap": false,
|
|
"inlineSources": false,
|
|
|
|
// Advanced
|
|
"skipLibCheck": true,
|
|
"forceConsistentCasingInFileNames": true,
|
|
"resolveJsonModule": true,
|
|
"isolatedModules": true,
|
|
|
|
// Path mapping for source files
|
|
"baseUrl": "./src",
|
|
"paths": {
|
|
"@utils/*": ["utils/*"],
|
|
"@plugins/*": ["plugins/*"],
|
|
"@types/*": ["types/*"]
|
|
}
|
|
},
|
|
"include": [
|
|
"src/**/*.ts"
|
|
],
|
|
"exclude": [
|
|
"node_modules",
|
|
"dist",
|
|
".tests",
|
|
"pages",
|
|
"data",
|
|
"db",
|
|
"config",
|
|
"**/*.js"
|
|
],
|
|
"ts-node": {
|
|
"esm": true,
|
|
"experimentalSpecifierResolution": "node"
|
|
}
|
|
} |