{
    "compilerOptions": {
        /* Basic Options */
        "target": "es5",
        "module": "commonjs",
        "lib": ["ES2015.Core"],
        "declaration": true,
        "declarationMap": true,
        "sourceMap": true,
        "outDir": "lib",

        /* Strict Type-Checking Options */
        "strict": true,

        /* Additional Checks */
        "exactOptionalPropertyTypes": true,
        "forceConsistentCasingInFileNames": true,
        "importsNotUsedAsValues": "error",
        "isolatedModules": true,
        "noFallthroughCasesInSwitch": true,
        "noImplicitOverride": true,
        "noImplicitReturns": true,
        "noPropertyAccessFromIndexSignature": true,
        "noUnusedLocals": true,
        "noUnusedParameters": true,

        /* Module Resolution Options */
        "esModuleInterop": true,
        "moduleResolution": "node",
        "resolveJsonModule": true
    },
    "include": ["src"],
    "exclude": [
        "**/*.spec.ts",
        "**/__fixtures__/*",
        "**/__tests__/*",
        "**/__snapshots__/*"
    ]
}
