{
    "include": ["src/**/*.ts"],
    "compilerOptions": {
        "outDir": "dist",
        "rootDir": "src",
        "lib": ["ES6"],
        "target": "ES6",
        "module": "CommonJS",
        "moduleResolution": "Node",
        "declaration": true,
        "declarationMap": true,
        "composite": false,
        "esModuleInterop": true,
        "skipLibCheck": true,
        "forceConsistentCasingInFileNames": true,

        "removeComments": true,

        "allowSyntheticDefaultImports": true,
        "allowUnreachableCode": false,
        "allowUnusedLabels": false,

        "noUnusedLocals": true,
        "noImplicitAny": true,
        "noImplicitOverride": true,
        "noImplicitThis": true,
        "noPropertyAccessFromIndexSignature": false,
        "noFallthroughCasesInSwitch": true,
        "noUncheckedIndexedAccess": true,
        "resolveJsonModule": true,

        "useUnknownInCatchVariables": false,

        "strict": true,
        "strictFunctionTypes": true,
        "strictNullChecks": true,
        "strictBindCallApply": true,
        "strictPropertyInitialization": true
    }
}
