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

86 lines
1.8 KiB
JavaScript

import js from "@eslint/js";
import tseslint from "typescript-eslint";
const appLayerImports = [
"@view/*",
"@renderer/*",
"@commands/*",
"@editor/*",
"@input/*",
"../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: ["@view/*", "@renderer/*", "../view/*", "../renderer/*", "react", "react-dom"],
},
],
},
},
{
files: ["editor/**/*.{ts,tsx}"],
rules: {
"no-restricted-imports": [
"error",
{
patterns: ["@view/*", "@renderer/*", "../view/*", "../renderer/*", "react", "react-dom"],
},
],
},
},
{
files: ["renderer/**/*.{ts,tsx}"],
rules: {
"no-restricted-imports": [
"error",
{
patterns: ["@view/*", "../view/*", "react", "react-dom"],
},
],
},
},
{
files: ["input/**/*.{ts,tsx}"],
rules: {
"no-restricted-imports": [
"error",
{
patterns: ["@view/*", "@renderer/*", "@editor/*", "../view/*", "../renderer/*", "../editor/*", "react", "react-dom"],
},
],
},
},
);