@strapi-community/eslint-config-admin
Version:
<div align="center"> <h1>@strapi-community/eslint-config/admin</h1>
130 lines (129 loc) • 3.3 kB
JavaScript
module.exports = {
plugins: ["react", "react-hooks", "import", "jsx-a11y"],
parser: "@babel/eslint-parser",
extends: [
"react-app",
"airbnb",
"eslint:recommended",
"plugin:react/recommended",
"prettier",
],
env: {
browser: true,
commonjs: true,
es6: true,
jest: true,
mocha: true,
},
parserOptions: {
requireConfigFile: false,
ecmaVersion: 12,
ecmaFeatures: {
jsx: true,
},
sourceType: "module",
},
settings: {
react: {
version: "detect",
},
},
globals: {
strapi: false,
window: false,
cy: false,
Cypress: false,
expect: false,
assert: false,
chai: false,
ENABLED_EE_FEATURES: false,
// TODO: put all this in process.env in webpack to avoid having to set them here
ADMIN_PATH: true,
BACKEND_URL: true,
PUBLIC_PATH: true,
NODE_ENV: true,
},
rules: {
strict: ["error", "never"],
"import/no-unresolved": 0,
"generator-star-spacing": 0,
"no-console": 0,
"require-atomic-updates": 0,
"react-hooks/rules-of-hooks": "error",
"react-hooks/exhaustive-deps": "error",
"arrow-body-style": 0,
"arrow-parens": 0,
camelcase: 0,
"comma-dangle": 0,
"consistent-return": [
2,
{
treatUndefinedAsUnspecified: true,
},
],
"template-curly-spacing": 0,
"func-names": ["error", "never"],
"function-paren-newline": 0,
"implicit-arrow-linebreak": 0,
"import/no-extraneous-dependencies": 0,
"import/no-named-as-default": 0,
"import/order": 2,
"import/prefer-default-export": "off",
"jsx-a11y/click-events-have-key-events": 1,
"max-len": [
2,
{
code: 120,
ignoreComments: true,
ignoreUrls: true,
ignoreTrailingComments: true,
ignoreStrings: true,
ignoreTemplateLiterals: true,
},
],
"newline-before-return": 2,
"no-confusing-arrow": 0,
"no-else-return": 1,
"no-nested-ternary": ["error"],
"no-return-assign": 0,
"no-param-reassign": 0,
"no-plusplus": 0,
"no-shadow": 0,
"no-underscore-dangle": 0,
"no-use-before-define": [
"error",
{ functions: false, classes: false, variables: false },
],
"object-curly-newline": [2, { multiline: true, consistent: true }],
"one-var": ["error", "never"],
"operator-linebreak": 0,
"padding-line-between-statements": [
"error",
{ blankLine: "always", prev: "*", next: "if" },
{ blankLine: "any", prev: "block-like", next: "if" },
],
"prefer-arrow-callback": 0,
"prefer-const": 0,
"prefer-destructuring": 0,
"prefer-object-spread": 0,
"prefer-spread": 0,
"space-before-function-paren": [
"error",
{
anonymous: "never",
named: "never",
asyncArrow: "always",
},
],
"react/destructuring-assignment": 0,
"react/jsx-filename-extension": [1, { extensions: [".js", ".jsx"] }],
"react/forbid-prop-types": 0,
"react/no-unused-prop-types": 2,
"react/jsx-props-no-spreading": 0,
"react/jsx-one-expression-per-line": 0,
"react/state-in-constructor": 0,
"react/static-property-placement": 0,
"react/display-name": 0,
"react/jsx-wrap-multilines": 0,
},
};