61 lines
1.6 KiB
JavaScript
61 lines
1.6 KiB
JavaScript
import globals from "globals";
|
|
import pluginJs from "@eslint/js";
|
|
import pluginReact from "eslint-plugin-react";
|
|
import pluginReactHooks from "eslint-plugin-react-hooks";
|
|
import pluginUnusedImports from "eslint-plugin-unused-imports";
|
|
|
|
export default [
|
|
{
|
|
files: [
|
|
"src/components/**/*.{js,mjs,cjs,jsx}",
|
|
"src/pages/**/*.{js,mjs,cjs,jsx}",
|
|
"src/Layout.jsx",
|
|
],
|
|
ignores: ["src/lib/**/*", "src/components/ui/**/*"],
|
|
...pluginJs.configs.recommended,
|
|
...pluginReact.configs.flat.recommended,
|
|
languageOptions: {
|
|
globals: globals.browser,
|
|
parserOptions: {
|
|
ecmaVersion: 2022,
|
|
sourceType: "module",
|
|
ecmaFeatures: {
|
|
jsx: true,
|
|
},
|
|
},
|
|
},
|
|
settings: {
|
|
react: {
|
|
version: "detect",
|
|
},
|
|
},
|
|
plugins: {
|
|
react: pluginReact,
|
|
"react-hooks": pluginReactHooks,
|
|
"unused-imports": pluginUnusedImports,
|
|
},
|
|
rules: {
|
|
"no-unused-vars": "off",
|
|
"react/jsx-uses-vars": "error",
|
|
"react/jsx-uses-react": "error",
|
|
"unused-imports/no-unused-imports": "error",
|
|
"unused-imports/no-unused-vars": [
|
|
"warn",
|
|
{
|
|
vars: "all",
|
|
varsIgnorePattern: "^_",
|
|
args: "after-used",
|
|
argsIgnorePattern: "^_",
|
|
},
|
|
],
|
|
"react/prop-types": "off",
|
|
"react/react-in-jsx-scope": "off",
|
|
"react/no-unknown-property": [
|
|
"error",
|
|
{ ignore: ["cmdk-input-wrapper", "toast-close"] },
|
|
],
|
|
"react-hooks/rules-of-hooks": "error",
|
|
},
|
|
},
|
|
];
|