{
  "compilerOptions": {
    "baseUrl": ".",
    "target": "es2022",
    "module": "commonjs",
    "moduleResolution": "node",
    // Lints and checks.
    "allowJs": true,
    "declaration": false,                  // Generates corresponding '.d.ts' file.
    "sourceMap": true,                     // Generates corresponding '.map' file.
    "inlineSources": true,                 // Adds source code to the '.map' file.
    "removeComments": false,               // Do not emit comments to output.
    "importHelpers": true,                 // Import emit helpers from 'tslib'.
    "downlevelIteration": true,            // Provide full support for iterables in 'for-of', spread, and destructuring when targeting 'ES5' or 'ES3'.
    "strict": true,                        // Enable all strict type-checking options.
    "noImplicitAny": true,                 // Raise error on expressions and declarations with an implied 'any' type.
    "strictNullChecks": true,              // Enable strict null checks.
    "strictFunctionTypes": true,           // Enable strict checking of function types.
    "strictPropertyInitialization": true,  // Enable strict checking of property initialization in classes.
    "noImplicitThis": true,                // Raise error on 'this' expressions with an implied 'any' type.
    "alwaysStrict": true,                  // Parse in strict mode and emit "use strict" for each source file.
    "noUnusedLocals": true,                // Report errors on unused locals.
    "noUnusedParameters": true,            // Report errors on unused parameters.
    "noImplicitReturns": true,             // Report error when not all code paths in function return a value.
    "noFallthroughCasesInSwitch": true,    // Report errors for fallthrough cases in switch statement.
    "useUnknownInCatchVariables": false,   // Use any for excpetions. TODO(hjd): Remove and typecheck uses.
  }
}
