-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathtsconfig.json
More file actions
39 lines (39 loc) · 1.6 KB
/
Copy pathtsconfig.json
File metadata and controls
39 lines (39 loc) · 1.6 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
{
"compilerOptions": {
"target": "ES2022",
// Nothing here is ever emitted by tsc — `objectstack build` bundles src via
// esbuild and vitest transpiles the suites — so the module mode only needs
// to describe how this code is *consumed*. `preserve` + `bundler` does
// that: extensionless relative imports (which the whole tree uses) resolve,
// and `import.meta` is legal, which `NodeNext` rejected for any file that
// would notionally emit to CommonJS.
"module": "preserve",
"moduleResolution": "bundler",
"strict": true,
"esModuleInterop": true,
"forceConsistentCasingInFileNames": true,
"skipLibCheck": true,
"rootDir": ".",
// `pnpm typecheck` is `tsc --noEmit`, but `outDir: "./dist"` was still
// declared — and `dist/` is where `objectstack build` writes the artifact
// that `scripts/publish-marketplace.mjs` uploads. Any `tsc` invocation
// without `--noEmit` would have scattered .js next to the build output that
// ships to the marketplace. Pinning `noEmit` here removes the footgun
// regardless of how tsc is invoked.
"noEmit": true,
"types": ["node"]
},
// `test/`, `e2e/` and `scripts/` were all outside `include`, so ~1,900 lines
// of first-party TypeScript — the whole vitest suite, both playwright specs,
// and the 606-line analytics-reconcile tool — were never typechecked by CI.
"include": [
"src/**/*",
"test/**/*",
"e2e/**/*",
"scripts/**/*.ts",
"objectstack.config.ts",
"vitest.config.ts",
"playwright.config.ts"
],
"exclude": ["node_modules", "dist", "apps"]
}