{ // This is based on https://bun.sh/docs/typescript#suggested-compileroptions "$schema": "https://json.schemastore.org/tsconfig", "display": "Bun", "docs": "https://bun.sh/docs/typescript", "compilerOptions": { // Enable latest features "lib": [ "ESNext" ], "target": "ESNext", "module": "NodeNext", "moduleDetection": "force", "jsx": "react-jsx", "allowJs": true, // Bundler mode "moduleResolution": "NodeNext", "allowImportingTsExtensions": true, // "verbatimModuleSyntax": true, // It breaks importing CommonJS modules "noEmit": true, // Best practices "strict": true, "skipLibCheck": true, "noFallthroughCasesInSwitch": true, // Some stricter flags "noUnusedLocals": true, "noUnusedParameters": true, // "noPropertyAccessFromIndexSignature": true // Ugly method of accessing properties `obj['prop']` // My rules "experimentalDecorators": true, // remult required "paths": { "@shared/*": [ "./shared/*" ], "@server/*": [ "./server/*" ], "@client/*": [ "./client/*" ] } }, "include": [ "shared/**/*", "server/**/*", ], "exclude": [ "node_modules", "dist", "build", "coverage", "client" ] }