@croct/eslint-plugin 0.6.6 → 0.7.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -40,12 +40,7 @@ exports.typescript = {
40
40
  '@typescript-eslint/explicit-function-return-type': ['error'],
41
41
  '@typescript-eslint/no-explicit-any': 'off',
42
42
  'no-use-before-define': 'off',
43
- '@typescript-eslint/no-use-before-define': [
44
- 'error',
45
- {
46
- functions: false,
47
- },
48
- ],
43
+ '@typescript-eslint/no-use-before-define': 'off',
49
44
  'no-unused-expressions': 'off',
50
45
  '@typescript-eslint/no-unused-expressions': 'error',
51
46
  indent: ['error', 4, {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@croct/eslint-plugin",
3
- "version": "0.6.6",
3
+ "version": "0.7.1",
4
4
  "description": "ESLint rules and presets applied to all Croct JavaScript projects.",
5
5
  "license": "MIT",
6
6
  "author": {
@@ -37,8 +37,8 @@
37
37
  ],
38
38
  "dependencies": {
39
39
  "@rushstack/eslint-patch": "^1.1",
40
- "@typescript-eslint/eslint-plugin": "^5.10",
41
- "@typescript-eslint/experimental-utils": "^5.10",
40
+ "@typescript-eslint/eslint-plugin": "^6.4.0",
41
+ "@typescript-eslint/utils": "^6.4.0",
42
42
  "eslint-config-airbnb": "^19.0",
43
43
  "eslint-config-airbnb-base": "^15.0",
44
44
  "eslint-plugin-cypress": "^2.12",
@@ -46,21 +46,20 @@
46
46
  "eslint-plugin-import": "^2.25",
47
47
  "eslint-plugin-import-newlines": "^1.1",
48
48
  "eslint-plugin-jest": "^27.0.0",
49
- "eslint-plugin-jest-dom": "^4.0",
49
+ "eslint-plugin-jest-dom": "^5.0.0",
50
50
  "eslint-plugin-jsx-a11y": "^6.5",
51
51
  "eslint-plugin-newline-destructuring": "^1.0.1",
52
52
  "eslint-plugin-no-smart-quotes": "^1.3",
53
53
  "eslint-plugin-react": "^7.28",
54
54
  "eslint-plugin-react-hooks": "^4.3",
55
- "eslint-plugin-testing-library": "^5.0"
55
+ "eslint-plugin-testing-library": "^6.0.0"
56
56
  },
57
57
  "devDependencies": {
58
58
  "@types/eslint": "^8.4",
59
59
  "@types/jest": "^29.0.0",
60
60
  "@types/semver": "^7.3.12",
61
- "@typescript-eslint/parser": "^5.10",
62
- "@typescript-eslint/types": "^5.10",
63
- "@typescript-eslint/utils": "^5.10",
61
+ "@typescript-eslint/parser": "^6.4.0",
62
+ "@typescript-eslint/types": "^6.4.0",
64
63
  "eslint": "^8.8",
65
64
  "eslint-plugin-eslint-plugin": "^5.0.0",
66
65
  "eslint-plugin-self": "^1.2.1",
@@ -69,7 +68,7 @@
69
68
  "typescript": "^5.0.0"
70
69
  },
71
70
  "peerDependencies": {
72
- "@typescript-eslint/parser": ">= 5",
71
+ "@typescript-eslint/parser": ">= 6",
73
72
  "eslint": ">= 8"
74
73
  }
75
74
  }
@@ -9,7 +9,7 @@ exports.argumentSpacing = (0, createRule_1.createRule)({
9
9
  docs: {
10
10
  description: 'Enforces a surrounding line break before and after '
11
11
  + 'the argument list in multiline functional calls.',
12
- recommended: 'error',
12
+ recommended: 'recommended',
13
13
  },
14
14
  fixable: 'whitespace',
15
15
  schema: [],
@@ -8,7 +8,7 @@ exports.complexExpressionSpacing = (0, createRule_1.createRule)({
8
8
  type: 'suggestion',
9
9
  docs: {
10
10
  description: 'Enforces a surrounding line break in complex expression.',
11
- recommended: 'error',
11
+ recommended: 'recommended',
12
12
  },
13
13
  fixable: 'whitespace',
14
14
  schema: [],
@@ -1,5 +1,5 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.createRule = void 0;
4
- const experimental_utils_1 = require("@typescript-eslint/experimental-utils");
5
- exports.createRule = experimental_utils_1.ESLintUtils.RuleCreator(name => `https://github.com/croct-tech/coding-standard-js/tree/master/docs/${name}.md`);
4
+ const utils_1 = require("@typescript-eslint/utils");
5
+ exports.createRule = utils_1.ESLintUtils.RuleCreator(name => `https://github.com/croct-tech/coding-standard-js/tree/master/docs/${name}.md`);
@@ -8,7 +8,7 @@ exports.jsxAttributeSpacing = (0, createRule_1.createRule)({
8
8
  type: 'suggestion',
9
9
  docs: {
10
10
  description: 'Enforces a surrounding line break in multiline JSX attributes.',
11
- recommended: 'error',
11
+ recommended: 'recommended',
12
12
  },
13
13
  fixable: 'whitespace',
14
14
  schema: [],
@@ -1,8 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.minChainedCallDepth = void 0;
4
- const experimental_utils_1 = require("@typescript-eslint/experimental-utils");
5
- const ast_utils_1 = require("@typescript-eslint/utils/dist/ast-utils");
4
+ const utils_1 = require("@typescript-eslint/utils");
5
+ const ast_utils_1 = require("@typescript-eslint/utils/ast-utils");
6
6
  const createRule_1 = require("../createRule");
7
7
  exports.minChainedCallDepth = (0, createRule_1.createRule)({
8
8
  name: 'min-chained-call-depth',
@@ -10,7 +10,7 @@ exports.minChainedCallDepth = (0, createRule_1.createRule)({
10
10
  type: 'layout',
11
11
  docs: {
12
12
  description: 'Enforces a minimum depth for multiline chained calls.',
13
- recommended: 'error',
13
+ recommended: 'stylistic',
14
14
  },
15
15
  fixable: 'whitespace',
16
16
  schema: [
@@ -50,20 +50,19 @@ exports.minChainedCallDepth = (0, createRule_1.createRule)({
50
50
  function getDepth(node) {
51
51
  let depth = 0;
52
52
  let currentNode = node;
53
- while (currentNode.type === experimental_utils_1.AST_NODE_TYPES.CallExpression
54
- || currentNode.type === experimental_utils_1.AST_NODE_TYPES.MemberExpression) {
55
- if (currentNode.type === experimental_utils_1.AST_NODE_TYPES.MemberExpression) {
53
+ while (currentNode.type === utils_1.AST_NODE_TYPES.CallExpression
54
+ || currentNode.type === utils_1.AST_NODE_TYPES.MemberExpression) {
55
+ if (currentNode.type === utils_1.AST_NODE_TYPES.MemberExpression) {
56
56
  currentNode = currentNode.object;
57
57
  depth += 1;
58
58
  }
59
- else if (currentNode.type === experimental_utils_1.AST_NODE_TYPES.CallExpression) {
59
+ else if (currentNode.type === utils_1.AST_NODE_TYPES.CallExpression) {
60
60
  currentNode = currentNode.callee;
61
61
  }
62
62
  }
63
63
  return depth;
64
64
  }
65
65
  function check(node) {
66
- var _a, _b;
67
66
  // If the node is a member expression inside a call/new expression skip,
68
67
  // this is to ensure that we consider the correct line length of the result.
69
68
  //
@@ -74,28 +73,28 @@ exports.minChainedCallDepth = (0, createRule_1.createRule)({
74
73
  // ```
75
74
  // The replacement of this input should be `foo.bar();`, which has 10 character.
76
75
  // Without this check it would consider the length up to `r`, which is 7.
77
- if (node.type === experimental_utils_1.AST_NODE_TYPES.MemberExpression
78
- && ((_a = node.parent) === null || _a === void 0 ? void 0 : _a.type) === experimental_utils_1.AST_NODE_TYPES.CallExpression) {
76
+ if (node.type === utils_1.AST_NODE_TYPES.MemberExpression
77
+ && node.parent?.type === utils_1.AST_NODE_TYPES.CallExpression) {
79
78
  return;
80
79
  }
81
80
  // If the node is a call/new expression we need to validate it's callee as a member
82
81
  // expression.
83
82
  // If the node itself is already a member expression, like the
84
83
  // `property` in `this.property.function()`, we validate the node directly.
85
- const callee = node.type === experimental_utils_1.AST_NODE_TYPES.CallExpression
84
+ const callee = node.type === utils_1.AST_NODE_TYPES.CallExpression
86
85
  ? node.callee
87
86
  : node;
88
87
  if (
89
88
  // If the callee is not a member expression, skip.
90
89
  // For example, root level calls like `foo();`.
91
- callee.type !== experimental_utils_1.AST_NODE_TYPES.MemberExpression
90
+ callee.type !== utils_1.AST_NODE_TYPES.MemberExpression
92
91
  // If the callee is a computed member expression, like `foo[bar]()`, skip.
93
92
  || callee.computed
94
93
  /* eslint-disable-next-line @typescript-eslint/ban-ts-comment --
95
94
  * NewExpression is a possible callee object type
96
95
  */
97
96
  // @ts-ignore
98
- || callee.object.type === experimental_utils_1.AST_NODE_TYPES.NewExpression
97
+ || callee.object.type === utils_1.AST_NODE_TYPES.NewExpression
99
98
  // If the callee is already in the same line as it's object, skip.
100
99
  || callee.object.loc.end.line === callee.property.loc.start.line) {
101
100
  return;
@@ -107,7 +106,7 @@ exports.minChainedCallDepth = (0, createRule_1.createRule)({
107
106
  if (currentDepth > 1) {
108
107
  return;
109
108
  }
110
- const { maxLineLength = 100, ignoreChainDeeperThan = 2 } = (_b = context.options[0]) !== null && _b !== void 0 ? _b : {};
109
+ const { maxLineLength = 100, ignoreChainDeeperThan = 2 } = context.options[0] ?? {};
111
110
  // If the max depth is greater than ignore threshold, skip
112
111
  //
113
112
  // Example:
@@ -128,7 +127,7 @@ exports.minChainedCallDepth = (0, createRule_1.createRule)({
128
127
  });
129
128
  const semicolon = sourceCode.getLastToken(node.parent, {
130
129
  filter: token => (token.loc.start.line === property.loc.start.line
131
- && token.type === experimental_utils_1.AST_TOKEN_TYPES.Punctuator
130
+ && token.type === utils_1.AST_TOKEN_TYPES.Punctuator
132
131
  && token.value === ';'),
133
132
  });
134
133
  const lineLength = callee.object.loc.end.column
@@ -9,7 +9,7 @@ exports.newlinePerChainedCall = (0, createRule_1.createRule)({
9
9
  type: 'layout',
10
10
  docs: {
11
11
  description: 'Require a newline after each call in a method chain',
12
- recommended: 'error',
12
+ recommended: 'recommended',
13
13
  },
14
14
  fixable: 'whitespace',
15
15
  schema: [
@@ -36,9 +36,8 @@ exports.newlinePerChainedCall = (0, createRule_1.createRule)({
36
36
  },
37
37
  ],
38
38
  create: context => {
39
- var _a, _b;
40
- const options = (_a = context.options[0]) !== null && _a !== void 0 ? _a : {};
41
- const ignoreChainWithDepth = (_b = options.ignoreChainDeeperThan) !== null && _b !== void 0 ? _b : 2;
39
+ const options = context.options[0] ?? {};
40
+ const ignoreChainWithDepth = options.ignoreChainDeeperThan ?? 2;
42
41
  const sourceCode = context.getSourceCode();
43
42
  function getPropertyText(node) {
44
43
  const prefix = '.';
@@ -52,7 +51,6 @@ exports.newlinePerChainedCall = (0, createRule_1.createRule)({
52
51
  return token.value !== ')' || token.type !== 'Punctuator';
53
52
  }
54
53
  function validateCallExpressionIgnoreDepth(node) {
55
- var _a, _b;
56
54
  let hasCallExpression = false;
57
55
  if (node.type === 'CallExpression') {
58
56
  hasCallExpression = true;
@@ -84,8 +82,8 @@ exports.newlinePerChainedCall = (0, createRule_1.createRule)({
84
82
  .filter(hasObjectAndPropertyOnSameLine);
85
83
  const rootNode = expressionsOnSameLine[expressionsOnSameLine.length - 1];
86
84
  if (rootNode.type === 'MemberExpression'
87
- && (((_a = rootNode.parent) === null || _a === void 0 ? void 0 : _a.type) === 'CallExpression'
88
- || ((_b = rootNode.parent) === null || _b === void 0 ? void 0 : _b.type) === 'MemberExpression')
85
+ && (rootNode.parent?.type === 'CallExpression'
86
+ || rootNode.parent?.type === 'MemberExpression')
89
87
  && (rootNode.object.type === 'ThisExpression'
90
88
  || rootNode.object.type === 'Identifier')) {
91
89
  expressionsOnSameLine.pop();
@@ -109,8 +107,7 @@ exports.newlinePerChainedCall = (0, createRule_1.createRule)({
109
107
  }
110
108
  return {
111
109
  CallExpression: (node) => {
112
- var _a;
113
- if (((_a = node.callee) === null || _a === void 0 ? void 0 : _a.type) === 'MemberExpression') {
110
+ if (node.callee?.type === 'MemberExpression') {
114
111
  validateCallExpressionIgnoreDepth(node);
115
112
  }
116
113
  },
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.parameterDestructuring = void 0;
4
- const types_1 = require("@typescript-eslint/types");
4
+ const utils_1 = require("@typescript-eslint/utils");
5
5
  const createRule_1 = require("../createRule");
6
6
  exports.parameterDestructuring = (0, createRule_1.createRule)({
7
7
  name: 'parameter-destructuring',
@@ -9,7 +9,7 @@ exports.parameterDestructuring = (0, createRule_1.createRule)({
9
9
  type: 'layout',
10
10
  docs: {
11
11
  description: 'Prevent noisy destructuring on parameters',
12
- recommended: 'error',
12
+ recommended: 'recommended',
13
13
  },
14
14
  hasSuggestions: true,
15
15
  schema: [],
@@ -25,9 +25,9 @@ exports.parameterDestructuring = (0, createRule_1.createRule)({
25
25
  ObjectPattern: function checkObjectPattern(node) {
26
26
  const { parent } = node;
27
27
  // Skip for destructuring in contexts unrelated to function parameters
28
- if ((parent === null || parent === void 0 ? void 0 : parent.type) !== types_1.AST_NODE_TYPES.FunctionExpression
29
- && (parent === null || parent === void 0 ? void 0 : parent.type) !== types_1.AST_NODE_TYPES.FunctionDeclaration
30
- && (parent === null || parent === void 0 ? void 0 : parent.type) !== types_1.AST_NODE_TYPES.ArrowFunctionExpression) {
28
+ if (parent?.type !== utils_1.AST_NODE_TYPES.FunctionExpression
29
+ && parent?.type !== utils_1.AST_NODE_TYPES.FunctionDeclaration
30
+ && parent?.type !== utils_1.AST_NODE_TYPES.ArrowFunctionExpression) {
31
31
  return;
32
32
  }
33
33
  // Allow one-line destructuring
@@ -38,7 +38,7 @@ exports.parameterDestructuring = (0, createRule_1.createRule)({
38
38
  context.report({
39
39
  node: node,
40
40
  messageId: 'unexpectedDestructuring',
41
- suggest: body.type === types_1.AST_NODE_TYPES.BlockStatement
41
+ suggest: body.type === utils_1.AST_NODE_TYPES.BlockStatement
42
42
  ? [
43
43
  {
44
44
  messageId: 'unexpectedDestructuring',
@@ -1,13 +0,0 @@
1
- export declare const cypress: {
2
- extends: string[];
3
- plugins: string[];
4
- rules: {
5
- 'no-loop-func': number;
6
- 'cypress/no-assigning-return-values': string;
7
- 'cypress/no-unnecessary-waiting': string;
8
- 'cypress/assertion-before-screenshot': string;
9
- 'cypress/no-async-tests': string;
10
- 'cypress/no-pause': string;
11
- '@typescript-eslint/no-namespace': string;
12
- };
13
- };
@@ -1,323 +0,0 @@
1
- export declare const configs: {
2
- cypress: {
3
- extends: string[];
4
- plugins: string[];
5
- rules: {
6
- 'no-loop-func': number;
7
- 'cypress/no-assigning-return-values': string;
8
- 'cypress/no-unnecessary-waiting': string;
9
- 'cypress/assertion-before-screenshot': string;
10
- 'cypress/no-async-tests': string;
11
- 'cypress/no-pause': string;
12
- '@typescript-eslint/no-namespace': string;
13
- };
14
- };
15
- react: {
16
- extends: string[];
17
- plugins: string[];
18
- rules: {
19
- '@croct/jsx-attribute-spacing': string;
20
- 'react/destructuring-assignment': string;
21
- 'react/jsx-wrap-multilines': string;
22
- 'react/display-name': string;
23
- 'react/jsx-sort-props': (string | {
24
- noSortAlphabetically: boolean;
25
- multiline: string;
26
- })[];
27
- 'react/jsx-newline': (string | {
28
- prevent: boolean;
29
- })[];
30
- 'react/jsx-no-bind': (string | {
31
- allowArrowFunctions: boolean;
32
- allowBind: boolean;
33
- allowFunctions: boolean;
34
- })[];
35
- 'react/no-unstable-nested-components': (string | {
36
- allowAsProps: boolean;
37
- })[];
38
- 'react/jsx-no-useless-fragment': (string | {
39
- allowExpressions: boolean;
40
- })[];
41
- 'react/function-component-definition': string;
42
- 'testing-library/no-container': string;
43
- 'testing-library/no-node-access': string;
44
- 'testing-library/await-async-utils': string;
45
- 'jsx-a11y/aria-role': (string | {
46
- ignoreNonDOM: boolean;
47
- })[];
48
- 'react/jsx-uses-react': string;
49
- 'react/react-in-jsx-scope': string;
50
- 'react/jsx-one-expression-per-line': string;
51
- 'react/prop-types': string;
52
- 'react/require-default-props': string;
53
- 'react/jsx-fragments': string[];
54
- 'react-hooks/rules-of-hooks': string;
55
- 'react-hooks/exhaustive-deps': string;
56
- 'react/jsx-filename-extension': (number | {
57
- extensions: string[];
58
- })[];
59
- 'react/jsx-indent': (string | number)[];
60
- 'react/jsx-indent-props': string;
61
- 'react/jsx-props-no-spreading': string;
62
- 'no-restricted-imports': (string | {
63
- name: string;
64
- importNames: string[];
65
- message: string;
66
- })[];
67
- 'import/order': (string | {
68
- groups: string[];
69
- pathGroups: {
70
- pattern: string;
71
- group: string;
72
- position: string;
73
- }[];
74
- pathGroupsExcludedImportTypes: string[];
75
- 'newlines-between': string;
76
- alphabetize: {
77
- order: string;
78
- caseInsensitive: boolean;
79
- };
80
- })[];
81
- };
82
- };
83
- typescript: {
84
- extends: string[];
85
- plugins: string[];
86
- overrides: ({
87
- files: string[];
88
- extends: string[];
89
- parser: string;
90
- rules: {
91
- 'import/export': string;
92
- '@typescript-eslint/array-type': (string | {
93
- default: string;
94
- })[];
95
- '@typescript-eslint/prefer-as-const': string;
96
- '@typescript-eslint/adjacent-overload-signatures': string;
97
- '@typescript-eslint/type-annotation-spacing': string;
98
- '@typescript-eslint/semi': string[];
99
- '@typescript-eslint/strict-boolean-expressions': (string | {
100
- allowString: boolean;
101
- allowNumber: boolean;
102
- allowNullableObject: boolean;
103
- })[];
104
- '@typescript-eslint/prefer-optional-chain': string;
105
- 'no-shadow': string;
106
- '@typescript-eslint/no-shadow': (string | {
107
- ignoreTypeValueShadow: boolean;
108
- ignoreFunctionTypeParameterNameValueShadow: boolean;
109
- })[];
110
- '@typescript-eslint/no-empty-interface': string;
111
- '@typescript-eslint/explicit-member-accessibility': string[];
112
- '@typescript-eslint/explicit-module-boundary-types': string;
113
- '@typescript-eslint/explicit-function-return-type': string[];
114
- '@typescript-eslint/no-explicit-any': string;
115
- 'no-use-before-define': string;
116
- '@typescript-eslint/no-use-before-define': (string | {
117
- functions: boolean;
118
- })[];
119
- 'no-unused-expressions': string;
120
- '@typescript-eslint/no-unused-expressions': string;
121
- indent: (string | number | {
122
- SwitchCase: number;
123
- })[];
124
- '@typescript-eslint/no-unused-vars': (string | {
125
- args: string;
126
- ignoreRestSiblings: boolean;
127
- })[];
128
- 'no-unused-vars': string;
129
- '@typescript-eslint/no-non-null-assertion': string;
130
- 'object-curly-spacing': string;
131
- '@typescript-eslint/object-curly-spacing': string;
132
- '@typescript-eslint/member-delimiter-style': (string | {
133
- multiline: {
134
- delimiter: string;
135
- requireLast: boolean;
136
- };
137
- singleline: {
138
- delimiter: string;
139
- requireLast: boolean;
140
- };
141
- overrides: {
142
- interface: {
143
- singleline: {
144
- delimiter: string;
145
- };
146
- multiline: {
147
- delimiter: string;
148
- };
149
- };
150
- };
151
- })[];
152
- 'no-undef': string;
153
- '@typescript-eslint/no-namespace': string;
154
- 'no-new-object'?: undefined;
155
- };
156
- plugins?: undefined;
157
- env?: undefined;
158
- } | {
159
- files: string[];
160
- extends: string[];
161
- plugins: string[];
162
- rules: {
163
- 'no-new-object': string;
164
- 'import/export'?: undefined;
165
- '@typescript-eslint/array-type'?: undefined;
166
- '@typescript-eslint/prefer-as-const'?: undefined;
167
- '@typescript-eslint/adjacent-overload-signatures'?: undefined;
168
- '@typescript-eslint/type-annotation-spacing'?: undefined;
169
- '@typescript-eslint/semi'?: undefined;
170
- '@typescript-eslint/strict-boolean-expressions'?: undefined;
171
- '@typescript-eslint/prefer-optional-chain'?: undefined;
172
- 'no-shadow'?: undefined;
173
- '@typescript-eslint/no-shadow'?: undefined;
174
- '@typescript-eslint/no-empty-interface'?: undefined;
175
- '@typescript-eslint/explicit-member-accessibility'?: undefined;
176
- '@typescript-eslint/explicit-module-boundary-types'?: undefined;
177
- '@typescript-eslint/explicit-function-return-type'?: undefined;
178
- '@typescript-eslint/no-explicit-any'?: undefined;
179
- 'no-use-before-define'?: undefined;
180
- '@typescript-eslint/no-use-before-define'?: undefined;
181
- 'no-unused-expressions'?: undefined;
182
- '@typescript-eslint/no-unused-expressions'?: undefined;
183
- indent?: undefined;
184
- '@typescript-eslint/no-unused-vars'?: undefined;
185
- 'no-unused-vars'?: undefined;
186
- '@typescript-eslint/no-non-null-assertion'?: undefined;
187
- 'object-curly-spacing'?: undefined;
188
- '@typescript-eslint/object-curly-spacing'?: undefined;
189
- '@typescript-eslint/member-delimiter-style'?: undefined;
190
- 'no-undef'?: undefined;
191
- '@typescript-eslint/no-namespace'?: undefined;
192
- };
193
- env: {
194
- jest: boolean;
195
- };
196
- parser?: undefined;
197
- })[];
198
- };
199
- javascript: {
200
- extends: string[];
201
- plugins: string[];
202
- rules: {
203
- '@croct/argument-spacing': string;
204
- '@croct/complex-expression-spacing': string;
205
- '@croct/newline-per-chained-call': string;
206
- '@croct/min-chained-call-depth': string;
207
- '@croct/parameter-destructuring': string;
208
- 'eslint-comments/disable-enable-pair': (string | {
209
- allowWholeFile: boolean;
210
- })[];
211
- 'eslint-comments/require-description': string;
212
- 'eslint-comments/no-unused-disable': string;
213
- 'newline-per-chained-call': string;
214
- 'no-plusplus': string;
215
- 'array-bracket-newline': string[];
216
- 'multiline-ternary': string[];
217
- 'no-undef-init': string;
218
- 'jest/consistent-test-it': (string | {
219
- fn: string;
220
- })[];
221
- 'jest/no-large-snapshots': string;
222
- 'jest/prefer-expect-resolves': string;
223
- 'jest/prefer-lowercase-title': (string | {
224
- ignore: string[];
225
- })[];
226
- 'jest/prefer-spy-on': string;
227
- 'jest/require-top-level-describe': string;
228
- 'jest/prefer-to-contain': string;
229
- 'jest/prefer-hooks-on-top': string;
230
- 'jest/prefer-equality-matcher': string;
231
- 'jest/no-test-return-statement': string;
232
- 'function-call-argument-newline': string[];
233
- 'no-underscore-dangle': string;
234
- 'import/no-default-export': string;
235
- 'array-element-newline': string[];
236
- 'import-newlines/enforce': (string | {
237
- items: number;
238
- 'max-len': number;
239
- })[];
240
- 'no-smart-quotes/no-smart-quotes': string;
241
- 'no-shadow': string;
242
- 'import/prefer-default-export': string;
243
- 'import/no-extraneous-dependencies': string;
244
- 'no-use-before-define': (string | {
245
- functions: boolean;
246
- })[];
247
- 'arrow-parens': string[];
248
- 'class-methods-use-this': string;
249
- 'consistent-return': string;
250
- 'default-case': string;
251
- 'import/extensions': (string | {
252
- d: string;
253
- json: string;
254
- })[];
255
- 'import/no-unresolved': string;
256
- indent: (string | number | {
257
- SwitchCase: number;
258
- })[];
259
- 'linebreak-style': string[];
260
- 'max-classes-per-file': string;
261
- 'max-len': (string | {
262
- code: number;
263
- ignoreStrings: boolean;
264
- ignoreComments: boolean;
265
- ignoreTemplateLiterals: boolean;
266
- ignoreTrailingComments: boolean;
267
- ignoreUrls: boolean;
268
- })[];
269
- 'no-await-in-loop': string;
270
- 'no-bitwise': string;
271
- 'no-continue': string;
272
- 'no-multiple-empty-lines': (string | {
273
- max: number;
274
- maxEOF: number;
275
- maxBOF: number;
276
- })[];
277
- 'no-unused-expressions': string;
278
- 'no-unused-vars': (string | {
279
- args: string;
280
- ignoreRestSiblings: boolean;
281
- })[];
282
- 'no-restricted-syntax': string[];
283
- 'object-curly-newline': (string | {
284
- multiline: boolean;
285
- consistent: boolean;
286
- })[];
287
- 'object-curly-spacing': string[];
288
- 'require-await': string;
289
- 'object-shorthand': string[];
290
- 'padding-line-between-statements': (string | {
291
- blankLine: string;
292
- prev: string;
293
- next: string[];
294
- } | {
295
- blankLine: string;
296
- prev: string[];
297
- next: string[];
298
- } | {
299
- blankLine: string;
300
- prev: string[];
301
- next: string;
302
- })[];
303
- 'no-useless-escape': string;
304
- 'newline-destructuring/newline': (string | {
305
- maxLength: number;
306
- itemsWithRest: number;
307
- items: number;
308
- })[];
309
- 'jsx-quotes': string[];
310
- };
311
- overrides: {
312
- files: string[];
313
- extends: string[];
314
- plugins: string[];
315
- rules: {
316
- 'no-new-object': string;
317
- };
318
- env: {
319
- jest: boolean;
320
- };
321
- }[];
322
- };
323
- };