147 lines
6.1 KiB
JSON
147 lines
6.1 KiB
JSON
{
|
|
"extends": [
|
|
"airbnb",
|
|
"plugin:@typescript-eslint/eslint-recommended",
|
|
"plugin:@typescript-eslint/recommended",
|
|
"plugin:@typescript-eslint/recommended-requiring-type-checking"
|
|
],
|
|
"env": {
|
|
"amd": true,
|
|
"browser": true,
|
|
"mocha": true
|
|
},
|
|
"parser": "@typescript-eslint/parser",
|
|
"parserOptions": {
|
|
"tsconfigRootDir": ".",
|
|
"project": ["./tsconfig.json"],
|
|
"ecmaVersion": 6,
|
|
"ecmaFeatures": {
|
|
"jsx": true
|
|
}
|
|
},
|
|
"plugins": [
|
|
"react-hooks",
|
|
"no-only-tests",
|
|
"@typescript-eslint"
|
|
],
|
|
"settings": {
|
|
"import/resolver": "webpack"
|
|
},
|
|
"rules": {
|
|
// Typrescript Rules
|
|
"@typescript-eslint/adjacent-overload-signatures": "off",
|
|
"@typescript-eslint/array-type": "off",
|
|
"@typescript-eslint/await-thenable": "off",
|
|
"@typescript-eslint/ban-ts-comment": "off",
|
|
"@typescript-eslint/ban-types": "off",
|
|
"@typescript-eslint/consistent-type-assertions": "off",
|
|
"@typescript-eslint/consistent-type-definitions": "off",
|
|
"@typescript-eslint/explicit-function-return-type": "off",
|
|
"@typescript-eslint/explicit-member-accessibility": "off",
|
|
"@typescript-eslint/explicit-module-boundary-types": "off",
|
|
"@typescript-eslint/member-delimiter-style": "off",
|
|
"@typescript-eslint/member-ordering": "off",
|
|
"@typescript-eslint/naming-convention": "off",
|
|
"@typescript-eslint/no-dynamic-delete": "off",
|
|
"@typescript-eslint/no-empty-interface": "off",
|
|
"@typescript-eslint/no-explicit-any": "off",
|
|
"@typescript-eslint/no-extra-non-null-assertion": "off",
|
|
"@typescript-eslint/no-extraneous-class": "off",
|
|
"@typescript-eslint/no-floating-promises": "off",
|
|
"@typescript-eslint/no-for-in-array": "off",
|
|
"@typescript-eslint/no-implied-eval": "off",
|
|
"@typescript-eslint/no-inferrable-types": "off",
|
|
"@typescript-eslint/no-misused-new": "off",
|
|
"@typescript-eslint/no-misused-promises": "off",
|
|
"@typescript-eslint/no-namespace": "off",
|
|
"@typescript-eslint/no-non-null-asserted-optional-chain": "off",
|
|
"@typescript-eslint/no-non-null-assertion": "off",
|
|
"@typescript-eslint/no-parameter-properties": "off",
|
|
"@typescript-eslint/no-require-imports": "off",
|
|
"@typescript-eslint/no-this-alias": "off",
|
|
"@typescript-eslint/no-throw-literal": "off",
|
|
"@typescript-eslint/no-type-alias": "off",
|
|
"@typescript-eslint/no-unnecessary-boolean-literal-compare": "off",
|
|
"@typescript-eslint/no-unnecessary-condition": "off",
|
|
"@typescript-eslint/no-unnecessary-qualifier": "off",
|
|
"@typescript-eslint/no-unnecessary-type-arguments": "off",
|
|
"@typescript-eslint/no-unnecessary-type-assertion": "off",
|
|
"@typescript-eslint/no-unused-vars-experimental": "off",
|
|
"@typescript-eslint/no-var-requires": "off",
|
|
"@typescript-eslint/prefer-as-const": "off",
|
|
"@typescript-eslint/prefer-for-of": "off",
|
|
"@typescript-eslint/prefer-function-type": "off",
|
|
"@typescript-eslint/prefer-includes": "off",
|
|
"@typescript-eslint/prefer-namespace-keyword": "off",
|
|
"@typescript-eslint/prefer-nullish-coalescing": "off",
|
|
"@typescript-eslint/prefer-optional-chain": "off",
|
|
"@typescript-eslint/prefer-readonly": "off",
|
|
"@typescript-eslint/prefer-regexp-exec": "off",
|
|
"@typescript-eslint/prefer-string-starts-ends-with": "off",
|
|
"@typescript-eslint/promise-function-async": "off",
|
|
"@typescript-eslint/require-array-sort-compare": "off",
|
|
"@typescript-eslint/restrict-plus-operands": "off",
|
|
"@typescript-eslint/restrict-template-expressions": "off",
|
|
"@typescript-eslint/strict-boolean-expressions": "off",
|
|
"@typescript-eslint/switch-exhaustiveness-check": "off",
|
|
"@typescript-eslint/triple-slash-reference": "off",
|
|
"@typescript-eslint/type-annotation-spacing": "off",
|
|
"@typescript-eslint/typedef": "off",
|
|
"@typescript-eslint/unbound-method": "off",
|
|
"@typescript-eslint/unified-signatures": "off",
|
|
// ESlint recommended rules adjusted for Typescript
|
|
"@typescript-eslint/brace-style": "off",
|
|
"@typescript-eslint/comma-spacing": "off",
|
|
"@typescript-eslint/default-param-last": "off",
|
|
"@typescript-eslint/func-call-spacing": "off",
|
|
"@typescript-eslint/indent": "off",
|
|
"@typescript-eslint/no-array-constructor": "off",
|
|
"@typescript-eslint/no-dupe-class-members": "off",
|
|
"@typescript-eslint/no-empty-function": "off",
|
|
"@typescript-eslint/no-extra-parens": "off",
|
|
"@typescript-eslint/no-extra-semi": "off",
|
|
"@typescript-eslint/no-magic-numbers": "off",
|
|
"@typescript-eslint/no-unused-expressions": "off",
|
|
"@typescript-eslint/no-unused-vars": "off",
|
|
"@typescript-eslint/no-use-before-define": "off",
|
|
"@typescript-eslint/no-useless-constructor": "off",
|
|
"@typescript-eslint/quotes": "off",
|
|
"@typescript-eslint/require-await": "off",
|
|
"@typescript-eslint/return-await": "off",
|
|
"@typescript-eslint/semi": "off",
|
|
"@typescript-eslint/space-before-function-paren": "off",
|
|
"@typescript-eslint/camelcase": "off",
|
|
// PropTypes
|
|
"react/prop-types": 0,
|
|
"react/jsx-props-no-spreading": 0,
|
|
// Hooks
|
|
"react-hooks/rules-of-hooks": "error",
|
|
"react-hooks/exhaustive-deps": "warn",
|
|
// Exceptions
|
|
"react/jsx-filename-extension": 0,
|
|
"arrow-parens": ["error", "always"],
|
|
"comma-dangle": ["error", "always-multiline"],
|
|
"no-only-tests/no-only-tests": 2,
|
|
"no-script-url": 0,
|
|
"import/extensions": 0, // we wouldn't be able to import jQuery without this line
|
|
"react/destructuring-assignment": 0, // that would be too many changes to fix this one
|
|
"prefer-destructuring": 0, // that would be too many changes to fix this one
|
|
"jsx-a11y/label-has-for": [2, {
|
|
"required": {"some": ["nesting", "id"]} // some of our labels are hidden and we cannot nest those
|
|
}],
|
|
"jsx-a11y/anchor-is-valid": 0, // cannot fix this one, it would break wprdpress themes
|
|
"jsx-a11y/label-has-associated-control": [ 2, {
|
|
"either": "either" // control has to be either nested or associated via htmlFor
|
|
}]
|
|
},
|
|
"overrides": [
|
|
{
|
|
"files": ["**/_stories/*.tsx"],
|
|
"rules": {
|
|
"import/no-extraneous-dependencies": ["error", { "devDependencies": true }]
|
|
}
|
|
}
|
|
]
|
|
}
|
|
|