blob: 779ab43ffc46c38fe5e61ac3f3c407e5b2847596 [file] [edit]
{
"compilerOptions": {
"target": "ES2022",
// `nodenext` matches Node ESM rules, so relative imports must carry the
// `.js` extension (as our sources do) and an extensionless import fails
"module": "nodenext",
"moduleResolution": "nodenext",
"lib": ["ES2022", "DOM", "DOM.Iterable"],
"strict": true,
"noEmit": true,
// Rolldown and Vite both compile each file in isolation (type stripping
// only), so the syntax must be erasable and imports/exports of types must be
// explicit. `verbatimModuleSyntax` already implies `isolatedModules`.
"verbatimModuleSyntax": true,
"erasableSyntaxOnly": true,
"useDefineForClassFields": true,
"forceConsistentCasingInFileNames": true,
"skipLibCheck": true
},
"include": ["js/src/**/*.ts", "js/tests/types/**/*.ts"],
// `consumer.ts` checks the shipped `js/dist/*.d.ts`, which only exist after
// the build. It has its own config (`tsconfig.consumer.json`) and runs then.
"exclude": ["js/tests/types/consumer.ts"]
}