{
	"compilerOptions": {
		"target": "ESNext",
		"useDefineForClassFields": true,
		"lib": ["DOM", "DOM.Iterable", "ESNext", "ES2021"],
		"module": "NodeNext",
		"skipLibCheck": true,
		"types": ["vite/client", "vitest/globals", "reflect-metadata"],

		/* Module paths alias */
		"baseUrl": ".",
		"paths": {
			"base/*": ["src/base/*"]
		},

		/* ioc */
		"experimentalDecorators": true,
		"emitDecoratorMetadata": true,

		/* Bundler mode */
		"moduleResolution": "NodeNext",
		"esModuleInterop": true,
		"forceConsistentCasingInFileNames": true,
		"resolveJsonModule": true,
		"isolatedModules": true,
		"noEmit": true,
		"jsx": "react-jsx",

		/* Linting */
		"strict": true,
		"noUnusedLocals": false,
		"noUnusedParameters": false,
		"noFallthroughCasesInSwitch": true
	},
	"include": ["src"],
	"exclude": ["node_modules"],
	"references": [{ "path": "./tsconfig.node.json" }]
}
