Files
gridpilot.gg/.eslintrc.json
2025-12-17 19:25:10 +01:00

102 lines
2.6 KiB
JSON

{
"root": true,
"env": {
"es2022": true,
"node": true
},
"parserOptions": {
"sourceType": "module",
"ecmaVersion": 2022
},
"settings": {
"import/resolver": {
"typescript": {}
},
"boundaries/elements": [
{
"type": "website",
"pattern": "apps/website/**/*"
},
{
"type": "api",
"pattern": "apps/api/**/*"
},
{
"type": "adapters",
"pattern": ["adapters/**/*", "@adapters/**/*"]
},
{
"type": "core",
"pattern": ["core/**/*", "@core/**/*"]
}
]
},
"overrides": [
{
"files": ["**/*.ts", "**/*.tsx"],
"parser": "@typescript-eslint/parser",
"plugins": ["@typescript-eslint", "boundaries", "import"],
"extends": [],
"rules": {
"@typescript-eslint/no-explicit-any": "error",
"@typescript-eslint/no-unused-vars": [
"error",
{
"args": "all",
"argsIgnorePattern": "^$",
"vars": "all",
"varsIgnorePattern": "^$",
"caughtErrors": "all"
}
],
"boundaries/element-types": [
2,
{
"default": "disallow",
"rules": [
{
"from": ["website"],
"allow": ["website"]
},
{
"from": ["api"],
"allow": ["api", "adapters", "core"]
},
{
"from": ["adapters"],
"allow": ["adapters", "core"]
},
{
"from": ["core"],
"allow": ["core"]
}
]
}
],
"import/no-restricted-imports": [
2,
{
"paths": [
{
"name": "apps/website/lib/apiClient",
"message": "Direct imports from apiClient are forbidden. Use services instead."
},
{
"name": "apps/website/lib/dtos",
"message": "Direct imports from dtos in UI components are forbidden. Use ViewModels instead.",
"from": ["apps/website/app/**/*", "apps/website/components/**/*"]
},
{
"name": "apps/website/lib/api",
"message": "Direct imports from api/* in UI components are forbidden. Use services instead.",
"from": ["apps/website/app/**/*", "apps/website/components/**/*"]
}
]
}
],
"import/no-default-export": "error",
"import/no-useless-path-segments": "error"
}
}
]
}