Files
gridpilot.gg/.eslintrc.json
2025-12-17 23:22:30 +01:00

99 lines
2.4 KiB
JSON

{
"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": ["**/index.ts", "**/index.tsx"],
"rules": {
"no-restricted-syntax": [
"error",
{
"selector": "Program",
"message": "index.ts files are forbidden. Use explicit file names instead (e.g., UserService.ts, not index.ts)."
}
]
}
},
{
"files": ["**/*.ts", "**/*.tsx"],
"parser": "@typescript-eslint/parser",
"plugins": ["@typescript-eslint", "boundaries", "import"],
"extends": ["plugin:import/recommended", "plugin:import/typescript"],
"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-default-export": "error",
"import/no-useless-path-segments": "error",
"no-restricted-syntax": [
"error",
{
"selector": "ExportDefaultDeclaration",
"message": "Default exports are forbidden. Use named exports instead."
}
]
}
}
]
}