import js from "@eslint/js"; import tseslint from "typescript-eslint"; const appLayerImports = [ "@app/*", "@view/*", "@renderer/*", "@commands/*", "@editor/*", "@input/*", "../app/*", "../view/*", "../renderer/*", "../commands/*", "../editor/*", "../input/*", ]; export default tseslint.config( { ignores: ["dist/**", "node_modules/**", "eslint.config.js"], }, js.configs.recommended, ...tseslint.configs.recommended, { files: ["**/*.{ts,tsx}"], rules: { "@typescript-eslint/no-explicit-any": "error", "@typescript-eslint/consistent-type-imports": ["error", { prefer: "type-imports" }], }, }, { files: ["core/**/*.{ts,tsx}"], rules: { "no-restricted-imports": ["error", { patterns: appLayerImports }], }, }, { files: ["commands/**/*.{ts,tsx}"], rules: { "no-restricted-imports": [ "error", { patterns: ["@app/*", "@view/*", "@renderer/*", "../app/*", "../view/*", "../renderer/*", "react", "react-dom"] }, ], }, }, { files: ["editor/**/*.{ts,tsx}"], rules: { "no-restricted-imports": [ "error", { patterns: ["@app/*", "@view/*", "@renderer/*", "../app/*", "../view/*", "../renderer/*", "react", "react-dom"] }, ], }, }, { files: ["renderer/**/*.{ts,tsx}"], rules: { "no-restricted-imports": [ "error", { patterns: ["@app/*", "@view/*", "../app/*", "../view/*", "react", "react-dom"] }, ], }, }, { files: ["input/**/*.{ts,tsx}"], rules: { "no-restricted-imports": [ "error", { patterns: [ "@app/*", "@view/*", "@renderer/*", "@editor/*", "../app/*", "../view/*", "../renderer/*", "../editor/*", "react", "react-dom", ], }, ], }, }, );