{
  "compilerOptions": {
    "target": "esnext",
    "module": "esnext",
    "moduleResolution": "node",
    "types": [],

    // All paths MUST be defined here to ensure resolving works in Svelte
    // components (since the svelte-preprocessor can only refer to a single
    // TS config file)
    "baseUrl": ".",
    "paths": {
      "~/electron/*": ["./electron/*"],
      "~/common/*": ["./common/*"],
      "~/app/*": ["./app/*"],
      "~/test/*": ["./test/*"],
      "~/worker/*": ["./worker/*"],
      "~/translations/*": ["./translations/*"]
    },

    "allowUnreachableCode": false,
    "allowUnusedLabels": false,
    "checkJs": true,
    "esModuleInterop": true,
    // TODO(DESK-1190): Enable `exactOptionalPropertyTypes`
    // "exactOptionalPropertyTypes": true,
    "forceConsistentCasingInFileNames": true,
    "isolatedModules": true,
    "newLine": "lf",
    "noEmitOnError": true,
    "noErrorTruncation": true,
    "noFallthroughCasesInSwitch": true,
    "noImplicitOverride": true,
    "noImplicitReturns": true,
    // TODO(DESK-1190): Enable `noPropertyAccessFromIndexSignature`
    // "noPropertyAccessFromIndexSignature": true,
    "noUncheckedIndexedAccess": true,
    "noUnusedLocals": false, // (Mostly) checked by eslint
    "noUnusedParameters": false,
    "removeComments": true,
    "sourceMap": true,
    "skipLibCheck": true,
    "strict": true,
    "verbatimModuleSyntax": true
  },

  "include": []
}
