
{
	"compilerOptions": {
		/* Basic Options */
		"target": "es2017",                       /* Specify ECMAScript target version: 'ES3' (default), 'ES5', 'ES2015', 'ES2016', 'ES2017','ES2018' or 'ESNEXT'. */
		"module": "es2022",                       /* Specify module code generation: 'none', 'commonjs', 'amd', 'system', 'umd', 'es2015', or 'ESNext'. */
		"lib": ["es2021"],                 		  /* Specify library files to be included in the compilation. */
		"allowJs": true,                          /* Allow javascript files to be compiled. */
		"checkJs": false,                         /* Report errors in .js files. */
		"sourceMap": false,                       /* Generates corresponding '.map' file. */
		"outDir": "./app",                        /* Redirect output structure to the directory. */
		"isolatedModules": true,

		/* Strict Type-Checking Options */
		"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. */

		/* Additional Checks */
		"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. */

		/* Module Resolution Options */
		"moduleResolution": "node",               /* Specify module resolution strategy: 'node' (Node.js) or 'classic' (TypeScript pre-1.6). */
		"esModuleInterop": true,                  /* Enables emit interoperability between CommonJS and ES Modules via creation of namespace objects for all imports. Implies 'allowSyntheticDefaultImports'. */
		"resolveJsonModule": true                 /* Include modules imported with .json extension. */
	},
	"include": ["src"]
}
