fortune-sheet/.eslintrc.js
2023-08-24 16:03:12 +08:00

70 lines
1.8 KiB
JavaScript

module.exports = {
env: {
browser: true,
es2021: true,
},
extends: [
"plugin:react/recommended",
"plugin:jsonc/base",
"airbnb",
"plugin:prettier/recommended",
"plugin:jest/recommended",
"plugin:storybook/recommended",
],
parser: "@typescript-eslint/parser",
parserOptions: {
ecmaFeatures: {
jsx: true,
},
ecmaVersion: "latest",
sourceType: "module",
},
plugins: ["react", "@typescript-eslint", "react-hooks", "jest"],
rules: {
quotes: 0,
camelcase: 0,
"class-methods-use-this": 0,
"eol-last": ["error", "always"],
"no-continue": 0,
"no-param-reassign": 0,
"no-unused-vars": 0,
"no-bitwise": 0,
"no-empty": 0,
"no-underscore-dangle": 0,
"no-console": [1, { allow: ["warn", "error"] }],
"no-lonely-if": 0,
"no-new-func": 0,
"no-template-curly-in-string": 0,
"jsx-a11y/no-static-element-interactions": 0,
"jsx-a11y/no-noninteractive-tabindex": 0,
"jsx-a11y/click-events-have-key-events": 0,
"jsx-a11y/interactive-supports-focus": 0,
"import/no-extraneous-dependencies": 0,
"import/extensions": 0,
"import/no-unresolved": 0,
"import/prefer-default-export": 0,
"react/jsx-filename-extension": 0,
"react/jsx-props-no-spreading": 0,
"react/no-danger": 0,
"react/no-array-index-key": 0,
"react/require-default-props": 0,
"react/function-component-definition": [
2,
{
namedComponents: "arrow-function",
unnamedComponents: "arrow-function",
},
],
"react/prop-types": 0,
"react-hooks/rules-of-hooks": 2,
"react-hooks/exhaustive-deps": 1,
"@typescript-eslint/no-unused-vars": [2],
},
overrides: [
{
parser: "jsonc-eslint-parser",
files: ["**/*.json", "**/*.json5", "**/*.jsonc"],
},
],
};