podcast manager
1{
2 "compilerOptions": {
3 // tsx compatibility
4 "moduleDetection": "force",
5 "noEmit": true,
6
7 // Modern JavaScript support
8 "target": "es2024",
9 "module": "Preserve",
10 "moduleResolution": "bundler",
11 "allowSyntheticDefaultImports": true,
12 "esModuleInterop": true,
13
14 // Strict type checking
15 "strict": true,
16 "noImplicitAny": true,
17 "strictNullChecks": true,
18 "strictFunctionTypes": true,
19
20 // JSX support for Preact
21 "jsx": "react-jsx",
22 "jsxImportSource": "preact",
23
24 // Path mapping to match Vite config
25 "baseUrl": ".",
26 "paths": {
27 "#common/*": ["./src/common/*"],
28 "#realm/*": ["./src/realm/*"],
29 "#client/*": ["./src/client/*"],
30 "#server/*": ["./src/server/*"],
31 "#skypod/*": ["./src/skypod/*"]
32 },
33
34 // Additional helpful options
35 "skipLibCheck": true,
36 "forceConsistentCasingInFileNames": true,
37 "resolveJsonModule": true,
38 "isolatedModules": true,
39
40 // we're not really building, but typechecking can still use increment
41 "incremental": true,
42
43 // Node.js types
44 "types": ["node"],
45 "lib": ["es2024", "DOM", "DOM.Iterable", "DOM.AsyncIterable"]
46 },
47 "include": ["src/**/*", "vite.config.js", "eslint.config.js"],
48 "exclude": ["node_modules", "dist", "tmp"]
49}