Files
waoowaoo/eslint.config.mjs

53 lines
1.1 KiB
JavaScript

import { dirname } from "path";
import { fileURLToPath } from "url";
import { FlatCompat } from "@eslint/eslintrc";
const __filename = fileURLToPath(import.meta.url);
const __dirname = dirname(__filename);
const compat = new FlatCompat({
baseDirectory: __dirname,
});
const eslintConfig = [
...compat.extends("next/core-web-vitals", "next/typescript"),
{
ignores: [
"node_modules/**",
".agent/**",
".next/**",
"out/**",
"build/**",
"coverage/**",
"next-env.d.ts",
],
},
{
files: ["src/**/*.{ts,tsx}"],
ignores: ["src/components/ui/icons/**"],
rules: {
"no-restricted-imports": [
"error",
{
paths: [
{
name: "lucide-react",
message: "Import icons through '@/components/ui/icons' only.",
},
],
},
],
"no-restricted-syntax": [
"error",
{
selector: "JSXOpeningElement[name.name='svg']",
message:
"Use AppIcon or icons module components instead of inline <svg>.",
},
],
},
},
];
export default eslintConfig;