40 lines
1.1 KiB
JavaScript
40 lines
1.1 KiB
JavaScript
import tsParser from "@typescript-eslint/parser";
|
|
import tsPlugin from "@typescript-eslint/eslint-plugin";
|
|
import boundaries from "eslint-plugin-boundaries";
|
|
|
|
export default [
|
|
{
|
|
files: ["src/**/*.{ts,tsx}"],
|
|
languageOptions: {
|
|
parser: tsParser,
|
|
parserOptions: { project: "./tsconfig.json" }
|
|
},
|
|
plugins: {
|
|
"@typescript-eslint": tsPlugin,
|
|
boundaries
|
|
},
|
|
rules: {
|
|
"boundaries/element-types": [
|
|
"error",
|
|
{
|
|
default: "disallow",
|
|
rules: [
|
|
{ from: "app", allow: ["app", "pages", "modules", "shared"] },
|
|
{ from: "pages", allow: ["pages", "modules", "shared"] },
|
|
{ from: "modules", allow: ["modules", "shared"] },
|
|
{ from: "shared", allow: ["shared"] }
|
|
]
|
|
}
|
|
]
|
|
},
|
|
settings: {
|
|
"boundaries/elements": [
|
|
{ type: "app", pattern: "src/app/*" },
|
|
{ type: "pages", pattern: "src/pages/*" },
|
|
{ type: "modules", pattern: "src/modules/*" },
|
|
{ type: "shared", pattern: "src/shared/*" }
|
|
]
|
|
}
|
|
}
|
|
];
|