55 lines
1.4 KiB
JavaScript
55 lines
1.4 KiB
JavaScript
import { defineConfig, globalIgnores } from "eslint/config";
|
|
import nextVitals from "eslint-config-next/core-web-vitals";
|
|
import nextTs from "eslint-config-next/typescript";
|
|
|
|
import tsPlugin from "@typescript-eslint/eslint-plugin";
|
|
import tsParser from "@typescript-eslint/parser";
|
|
import tanstackPlugin from "@tanstack/eslint-plugin-query";
|
|
import importPlugin from "eslint-plugin-import";
|
|
|
|
export default defineConfig([
|
|
...nextVitals,
|
|
...nextTs,
|
|
|
|
// Custom rules for your e-commerce project
|
|
{
|
|
files: ["**/*.{ts,tsx}"],
|
|
languageOptions: {
|
|
parser: tsParser
|
|
},
|
|
plugins: {
|
|
"@typescript-eslint": tsPlugin,
|
|
"@tanstack/query": tanstackPlugin,
|
|
import: importPlugin
|
|
},
|
|
rules: {
|
|
"@typescript-eslint/consistent-type-imports": "error",
|
|
"@typescript-eslint/no-explicit-any": "warn",
|
|
"@typescript-eslint/no-unused-vars": ["error"],
|
|
|
|
"react-hooks/exhaustive-deps": "error",
|
|
|
|
"@tanstack/query/exhaustive-deps": "error",
|
|
"@tanstack/query/no-unstable-deps": "error",
|
|
|
|
"import/order": [
|
|
"error",
|
|
{
|
|
"groups": ["builtin", "external", "internal", "parent", "sibling", "index"],
|
|
"newlines-between": "always"
|
|
}
|
|
],
|
|
"import/no-default-export": "error",
|
|
|
|
"no-console": ["warn", { allow: ["warn", "error"] }]
|
|
}
|
|
},
|
|
|
|
globalIgnores([
|
|
".next/**",
|
|
"out/**",
|
|
"build/**",
|
|
"next-env.d.ts",
|
|
])
|
|
]);
|