50 lines
1.9 KiB
JSON
50 lines
1.9 KiB
JSON
{
|
|
"include": ["src", "tsup.config.ts"],
|
|
"compilerOptions": {
|
|
/* LANGUAGE COMPILATION OPTIONS */
|
|
"target": "ES2020",
|
|
"lib": ["DOM", "DOM.Iterable", "ES2020"],
|
|
"module": "Node16",
|
|
"moduleResolution": "nodenext",
|
|
"resolveJsonModule": true,
|
|
"allowJs": true,
|
|
"checkJs": true,
|
|
|
|
/* EMIT RULES */
|
|
"outDir": "./dist",
|
|
"noEmit": true, // TSUP takes care of emitting js for us, in a MUCH faster way
|
|
"declaration": true,
|
|
"declarationMap": true,
|
|
"sourceMap": true,
|
|
"removeComments": true,
|
|
|
|
/* TYPE CHECKING RULES */
|
|
"strict": true,
|
|
// "noImplicitAny": true, // Included in "Strict"
|
|
// "noImplicitThis": true, // Included in "Strict"
|
|
// "strictBindCallApply": true, // Included in "Strict"
|
|
// "strictFunctionTypes": true, // Included in "Strict"
|
|
// "strictNullChecks": true, // Included in "Strict"
|
|
// "strictPropertyInitialization": true, // Included in "Strict"
|
|
"noFallthroughCasesInSwitch": true,
|
|
"noImplicitOverride": true,
|
|
"noImplicitReturns": true,
|
|
"noUnusedLocals": true,
|
|
"noUnusedParameters": true,
|
|
"useUnknownInCatchVariables": true,
|
|
"noUncheckedIndexedAccess": true, // TLDR - Checking an indexed value (array[0]) now forces type <T | undefined> as there is no confirmation that index exists
|
|
// THE BELOW ARE EXTRA STRICT OPTIONS THAT SHOULD ONLY BY CONSIDERED IN VERY SAFE PROJECTS
|
|
// "exactOptionalPropertyTypes": true, // TLDR - Setting to undefined is not the same as a property not being defined at all
|
|
// "noPropertyAccessFromIndexSignature": true, // TLDR - Use dot notation for objects if youre sure it exists, use ['index'] notaion if unsure
|
|
|
|
/* OTHER OPTIONS */
|
|
"allowSyntheticDefaultImports": true,
|
|
"esModuleInterop": true,
|
|
// "emitDecoratorMetadata": true,
|
|
// "experimentalDecorators": true,
|
|
"forceConsistentCasingInFileNames": true,
|
|
"skipLibCheck": true,
|
|
"useDefineForClassFields": true
|
|
}
|
|
}
|