mirror of
https://github.com/hasura/graphql-engine.git
synced 2024-12-14 17:02:49 +03:00
040a281392
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/6153 GitOrigin-RevId: e0dea3acf995d8f73eed8fabae374e215ebcd964
276 lines
8.3 KiB
Plaintext
276 lines
8.3 KiB
Plaintext
{
|
|
"extends": ["airbnb", "prettier"],
|
|
"env": {
|
|
"browser": true,
|
|
"node": true,
|
|
"mocha": true,
|
|
"jest": true
|
|
},
|
|
"parser": "babel-eslint",
|
|
"rules": {
|
|
"no-useless-escape": 0,
|
|
"allowForLoopAfterthoughts": 0,
|
|
"react/no-multi-comp": 0,
|
|
"import/order": 0,
|
|
"import/default": 0,
|
|
"import/no-duplicates": 0,
|
|
"import/named": 0,
|
|
"import/first": 0,
|
|
"import/namespace": 0,
|
|
"import/no-unresolved": 0,
|
|
"import/no-named-as-default": 2,
|
|
"import/extensions": 0,
|
|
"import/no-extraneous-dependencies": 0,
|
|
"import/prefer-default-export": 0,
|
|
"comma-dangle": 0,
|
|
"id-length": [
|
|
1,
|
|
{
|
|
"min": 1,
|
|
"properties": "never"
|
|
}
|
|
],
|
|
"consistent-return": "off",
|
|
"indent": "off",
|
|
"no-console": 0,
|
|
"arrow-parens": 0,
|
|
"no-alert": 0,
|
|
"no-plusplus": 0,
|
|
"no-unsafe-negation": 0,
|
|
"no-loop-func": 0,
|
|
"no-lonely-if": 0,
|
|
"no-bitwise": 0,
|
|
"global-require": 0,
|
|
"no-param-reassign": 0,
|
|
"no-underscore-dangle": 0,
|
|
"no-useless-return": 0,
|
|
"no-restricted-syntax": 0,
|
|
"no-prototype-builtins": 0,
|
|
"array-callback-return": 0,
|
|
"no-useless-concat": 0,
|
|
"class-methods-use-this": 0,
|
|
"arrow-body-style": 0,
|
|
"prefer-template": 0,
|
|
"prefer-spread": 0,
|
|
"object-shorthand": 0,
|
|
"camelcase": 0,
|
|
"object-curly-newline": 0,
|
|
"spaced-comment": 0,
|
|
"prefer-destructuring": [
|
|
"error",
|
|
{
|
|
"object": false,
|
|
"array": false
|
|
}
|
|
],
|
|
"prefer-rest-params": 0,
|
|
"function-paren-newline": 0,
|
|
"no-case-declarations": 0,
|
|
"no-restricted-globals": 0,
|
|
"no-unneeded-ternary": 0,
|
|
"no-mixed-operators": 0,
|
|
"no-return-assign": 0,
|
|
"operator-assignment": 0,
|
|
"strict": 0,
|
|
"react/jsx-no-duplicate-props": 0,
|
|
"react/jsx-filename-extension": 0,
|
|
"react/jsx-curly-brace-presence": 0,
|
|
"react/forbid-prop-types": 0,
|
|
"react/require-default-props": 0,
|
|
"react/no-unused-prop-types": 0,
|
|
"react/no-string-refs": 0,
|
|
"react/no-unused-state": 0,
|
|
"react/no-array-index-key": 0,
|
|
"react/jsx-no-bind": 0,
|
|
"react/prop-types": 0,
|
|
"react/prefer-stateless-function": 0,
|
|
"react/no-unescaped-entities": 0,
|
|
"react/sort-comp": 0,
|
|
"react/jsx-indent": 0,
|
|
"react-hooks/rules-of-hooks": "error",
|
|
"react-hooks/exhaustive-deps": "warn",
|
|
"jsx-a11y/click-events-have-key-events": 0,
|
|
"jsx-a11y/no-static-element-interactions": 0,
|
|
"jsx-a11y/no-noninteractive-element-interactions": 0,
|
|
"jsx-a11y/label-has-for": 0,
|
|
"jsx-a11y/anchor-is-valid": 0,
|
|
"jsx-a11y/lang": 0,
|
|
"jsx-a11y/alt-text": 0,
|
|
"jsx-a11y/no-autofocus": 0,
|
|
"max-len": 0,
|
|
"no-continue": 0,
|
|
"no-new": 0,
|
|
"eqeqeq": 0,
|
|
"no-nested-ternary": 0,
|
|
"react/forbid-dom-props": [
|
|
"error",
|
|
{
|
|
"forbid": [
|
|
{
|
|
"propName": "data-analytics-name",
|
|
"message": "Analytics attributes (data-analytics-name) should be added through the Analytics component/utilities"
|
|
},
|
|
{
|
|
"propName": "data-trackid",
|
|
"message": "Analytics attributes (data-trackid) should be added through the Analytics component/utilities"
|
|
},
|
|
{
|
|
"propName": "data-heap-redact-text",
|
|
"message": "Analytics attributes (data-heap-redact-text) should be added through the Analytics component/utilities"
|
|
},
|
|
{
|
|
"propName": "data-heap-redact-attributes",
|
|
"message": "Analytics attributes (data-heap-redact-attributes) should be added through the Analytics component/utilities"
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
"plugins": [
|
|
"react",
|
|
"import",
|
|
"@typescript-eslint/eslint-plugin",
|
|
"react-hooks",
|
|
"testing-library"
|
|
],
|
|
"settings": {
|
|
"import/resolve": {
|
|
"moduleDirectory": ["node_modules", "src"]
|
|
}
|
|
},
|
|
"globals": {
|
|
"__DEVELOPMENT__": true,
|
|
"__CLIENT__": true,
|
|
"__SERVER__": true,
|
|
"__DISABLE_SSR__": true,
|
|
"__DEVTOOLS__": true,
|
|
"socket": true,
|
|
"webpackIsomorphicTools": true,
|
|
"CONSOLE_ASSET_VERSION": true
|
|
},
|
|
"overrides": [
|
|
{
|
|
"extends": [
|
|
"plugin:@typescript-eslint/recommended",
|
|
"airbnb",
|
|
"prettier"
|
|
],
|
|
"parser": "@typescript-eslint/parser",
|
|
"files": ["*.ts", "*.tsx"],
|
|
"rules": {
|
|
"no-useless-escape": 0,
|
|
"no-restricted-imports": [
|
|
"error",
|
|
{
|
|
"patterns": ["@/features/*/*", "@/new-components/*/*"]
|
|
}
|
|
],
|
|
"jsx-a11y/label-has-for": [
|
|
0,
|
|
{
|
|
"required": {
|
|
"some": ["nesting", "id"]
|
|
}
|
|
}
|
|
],
|
|
"import/order": 0,
|
|
"import/extensions": 0,
|
|
"import/prefer-default-export": "off",
|
|
"react/prop-types": "off",
|
|
"react/jsx-filename-extension": 0,
|
|
"no-unused-vars": "off",
|
|
"camelcase": "off",
|
|
"no-param-reassign": "off",
|
|
"no-use-before-define": "off",
|
|
"consistent-return": "off",
|
|
"import/no-extraneous-dependencies": [
|
|
"error",
|
|
{
|
|
"devDependencies": [
|
|
"src/storybook/**/*",
|
|
"**/__tests__/**/*",
|
|
"**/*.test.js",
|
|
"**/*.test.jsx",
|
|
"**/*.spec.js",
|
|
"**/*.spec.jsx",
|
|
"**/*.test.ts",
|
|
"**/*.test.tsx",
|
|
"**/*.spec.ts",
|
|
"**/*.spec.tsx",
|
|
"**/*.stories.tsx",
|
|
"**/*.stories.mdx",
|
|
"**/*.mock.tsx",
|
|
"**/*.mock.ts"
|
|
]
|
|
}
|
|
],
|
|
"@typescript-eslint/no-unused-vars": 2,
|
|
"@typescript-eslint/no-use-before-define": "warn",
|
|
"@typescript-eslint/indent": 0,
|
|
"@typescript-eslint/explicit-function-return-type": 0,
|
|
"@typescript-eslint/prefer-interface": 0,
|
|
"@typescript-eslint/no-namespace": "off",
|
|
"@typescript-eslint/camelcase": 0,
|
|
"@typescript-eslint/explicit-member-accessibility": 0,
|
|
"@typescript-eslint/no-non-null-assertion": 0,
|
|
"@typescript-eslint/no-object-literal-type-assertion": "off",
|
|
"@typescript-eslint/no-empty-interface": "off",
|
|
"@typescript-eslint/no-parameter-properties": "off",
|
|
"@typescript-eslint/no-explicit-any": "off",
|
|
"@typescript-eslint/no-var-requires": "off",
|
|
"@typescript-eslint/no-shadow": "error",
|
|
"@typescript-eslint/no-useless-constructor": "error",
|
|
"@typescript-eslint/no-unused-expressions": ["error"],
|
|
"@typescript-eslint/no-empty-function": "off",
|
|
"@typescript-eslint/explicit-module-boundary-types": "off",
|
|
"no-restricted-syntax": "warn",
|
|
/**
|
|
* Disable things that are checked by TypeScript
|
|
*/
|
|
"import/no-unresolved": 0,
|
|
"getter-return": "off",
|
|
"no-dupe-args": "off",
|
|
"no-dupe-keys": "off",
|
|
"no-unreachable": "off",
|
|
"valid-typeof": "off",
|
|
"no-const-assign": "off",
|
|
"no-new-symbol": "off",
|
|
"no-this-before-super": "off",
|
|
"no-undef": "off",
|
|
"no-dupe-class-members": "off",
|
|
"no-redeclare": "off",
|
|
"no-restricted-globals": "warn",
|
|
"no-useless-constructor": "off",
|
|
"no-unused-expressions": "off",
|
|
"no-console": "off",
|
|
"no-shadow": "off",
|
|
"prefer-destructuring": "off",
|
|
"no-plusplus": "off",
|
|
"jsx-a11y/anchor-is-valid": "off",
|
|
"jsx-a11y/click-events-have-key-events": "off",
|
|
"jsx-a11y/no-static-element-interactions": "off",
|
|
"no-new": "off",
|
|
"no-nested-ternary": "off",
|
|
"jsx-a11y/interactive-supports-focus": "off",
|
|
"no-restricted-properties": "off",
|
|
"react/no-danger": "off",
|
|
"react/no-array-index-key": "off",
|
|
"no-case-declarations": 0,
|
|
"react/jsx-indent": "off",
|
|
"arrow-body-style": "off",
|
|
"react/require-default-props": "warn",
|
|
"react/no-unused-prop-types": "warn",
|
|
"jsx-a11y/role-supports-aria-props": "warn"
|
|
}
|
|
},
|
|
{
|
|
// 3) Now we enable eslint-plugin-testing-library rules or preset only for matching files!
|
|
"files": [
|
|
"src/**/__tests__/**/*.[jt]s?(x)",
|
|
"src/**/?(*.)+(spec|test).[jt]s?(x)"
|
|
],
|
|
"extends": ["plugin:testing-library/react", "plugin:jest-dom/recommended"]
|
|
}
|
|
]
|
|
}
|