Banda-Media/lunchMemo

View on GitHub
tsconfig.json

Summary

Maintainability
Test Coverage
{
  // see https://www.typescriptlang.org/tsconfig to better understand tsconfigs
  "include": ["public", "pages", "app"],
  "compilerOptions": {
    "module": "esnext",
    "lib": ["dom", "esnext"],
    "importHelpers": true,
    // output .d.ts declaration files for consumers
    "declaration": true,
    // output .js.map sourcemap files for consumers
    "sourceMap": true,
    // match output dir to input dir. e.g. dist/index instead of dist/src/index
    "rootDir": "./",
    "baseUrl": ".",
    "rootDirs": ["pages", "app"],
    "paths": {
      "@utils/*": ["app/utils/*"],
      "@components/*": ["app/components/*"],
      "@hooks/*": ["app/hooks/*"],
      "@typing/*": ["app/types/*"],
      "@styles/*": ["app/styles/*"],
      "@services/*": ["app/services/*"],
      "@pages/*": ["pages/*"],
      "@public/*": ["public/*"],
      "@common/*": ["app/components/common/*"],
      "@modules/*": ["app/components/modules/*"]
    },
    "downlevelIteration": true,
    "typeRoots": ["./app/types", "./node_modules/@types"],
    // stricter type-checking for stronger correctness. Recommended by TS
    "strict": true,
    // linter checks for common issues
    "noImplicitReturns": true,
    "noFallthroughCasesInSwitch": true,
    // noUnused* overlap with @typescript-eslint/no-unused-vars, can disable if duplicative
    "noUnusedLocals": true,
    "noUnusedParameters": true,
    // use Node's module resolution algorithm, instead of the legacy TS one
    "moduleResolution": "node",
    // transpile JSX to React.createElement
    "jsx": "preserve",
    // interop between ESM and CJS modules. Recommended by TS
    "esModuleInterop": true,
    // significant perf increase by skipping checking .d.ts files, particularly those in node_modules. Recommended by TS
    "skipLibCheck": true,
    // error out if import and file system have a casing mismatch. Recommended by TS
    "forceConsistentCasingInFileNames": true,
    // `tsdx build` ignores this option, but it is commonly used when type-checking separately with `tsc`
    "noEmit": true,
    "target": "es5",
    "allowJs": true,
    "resolveJsonModule": true,
    "isolatedModules": true
  },
  "exclude": ["node_modules"],
  "types": ["jasmine", "firebase"]
}