Files
image-studio/eslint.config.js
2026-07-03 09:36:04 +02:00

88 lines
1.9 KiB
JavaScript

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",
],
},
],
},
},
);