@ticketmaster/eslint-config-allure
Version:
Allure shareable ESLint configuration that follow Allure design system recommendations
77 lines (76 loc) • 2.43 kB
JavaScript
module.exports = {
settings: {
react: {
version: "detect", // Automatically detect the version of React to use
pragma: "React", // Pragma to use, default to "React"
},
},
parser: "@typescript-eslint/parser",
parserOptions: {
requireConfigFile: false,
},
extends: [
"eslint:recommended",
"plugin:@next/next/recommended",
"plugin:@typescript-eslint/recommended",
"plugin:react/recommended",
"plugin:react-hooks/recommended",
"prettier",
],
rules: {
"react/prop-types": "off", // Reactivate when the proptypes generator is ready
"no-underscore-dangle": "error",
camelcase: ["error", { ignoreDestructuring: true, ignoreImports: true }],
"one-var": [
"error",
{
separateRequires: true,
const: "never",
let: "never",
var: "never",
},
],
"no-new-wrappers": "error",
"prefer-template": "error",
"prefer-exponentiation-operator": "error",
"no-plusplus": "error",
"no-new-object": "error",
"object-shorthand": "error",
"prefer-spread": "error",
"prefer-object-spread": "error",
"dot-notation": "error",
"prefer-destructuring": "error",
"arrow-body-style": ["error", "as-needed"],
"consistent-return": "error",
eqeqeq: "error",
"no-unneeded-ternary": "error",
"no-nested-ternary": "off",
"no-sequences": "error",
"padding-line-between-statements": [
"error",
{ blankLine: "always", prev: "*", next: "return" },
{ blankLine: "always", prev: "*", next: "function" },
{ blankLine: "always", prev: "function", next: "*" },
{ blankLine: "always", prev: "import", next: "*" },
{ blankLine: "any", prev: "import", next: "import" },
{ blankLine: "always", prev: ["const", "let", "var"], next: "*" },
{ blankLine: "always", prev: "*", next: ["const", "let", "var"] },
{
blankLine: "any",
prev: ["const", "let", "var"],
next: ["const", "let", "var"],
},
],
"spaced-comment": ["error", "always", { block: { balanced: true } }],
},
overrides: [
{
files: ["*.js"],
env: { node: true },
rules: {
"@typescript-eslint/no-var-requires": "off", // Some JS files still need to use require
"@typescript-eslint/explicit-module-boundary-types": "off", // Strangely, this rule is applied on JS files
},
},
],
};