{
    // Visit https://aka.ms/tsconfig to read more about this file
    "compilerOptions": {
        // Environment Settings
        // See also https://aka.ms/tsconfig/module
        "module": "ESNext",
        "moduleResolution": "node",
        "target": "ES2022",
        "lib": ["ES2022", "DOM", "DOM.Iterable"],
        "baseUrl": "./",
        "typeRoots": ["node_modules/@types", "types"],
        "types": ["node"],
        // For nodejs:
        // "lib": ["esnext"],
        // "types": ["node"],
        // and npm install -D @types/node

        // Other Outputs
        "sourceMap": false,

        // Stricter Typechecking Options
        "noUncheckedIndexedAccess": true,
        "exactOptionalPropertyTypes": true,

        // Style Options
        // "noImplicitReturns": true,
        // "noImplicitOverride": true,
        // "noUnusedLocals": true,
        // "noUnusedParameters": true,
        // "noFallthroughCasesInSwitch": true,
        // "noPropertyAccessFromIndexSignature": true,

        // Recommended Options
        "strict": true,
        "allowJs": true,
        "allowSyntheticDefaultImports": true,
        "esModuleInterop": true,
        "forceConsistentCasingInFileNames": true,
        "noUncheckedSideEffectImports": true,
        "moduleDetection": "force",
        "resolveJsonModule": true,
        "ignoreDeprecations": "6.0",
        "skipLibCheck": true
    }
}
