@typescript-eslint/eslint-plugin 7.2.1-alpha.2 → 7.2.1-alpha.3

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.
Files changed (179) hide show
  1. package/dist/configs/all.js +1 -0
  2. package/dist/configs/all.js.map +1 -1
  3. package/dist/configs/disable-type-checked.js +1 -0
  4. package/dist/configs/disable-type-checked.js.map +1 -1
  5. package/dist/configs/strict-type-checked-only.js +23 -3
  6. package/dist/configs/strict-type-checked-only.js.map +1 -1
  7. package/dist/configs/strict-type-checked.js +27 -4
  8. package/dist/configs/strict-type-checked.js.map +1 -1
  9. package/dist/configs/strict.js +4 -1
  10. package/dist/configs/strict.js.map +1 -1
  11. package/dist/rules/ban-ts-comment.js +4 -1
  12. package/dist/rules/ban-ts-comment.js.map +1 -1
  13. package/dist/rules/index.js +2 -0
  14. package/dist/rules/index.js.map +1 -1
  15. package/dist/rules/no-floating-promises.js +4 -1
  16. package/dist/rules/no-floating-promises.js.map +1 -1
  17. package/dist/rules/no-misused-promises.js +1 -1
  18. package/dist/rules/no-misused-promises.js.map +1 -1
  19. package/dist/rules/no-unnecessary-qualifier.js +1 -1
  20. package/dist/rules/no-unnecessary-qualifier.js.map +1 -1
  21. package/dist/rules/no-unsafe-argument.js +1 -25
  22. package/dist/rules/no-unsafe-argument.js.map +1 -1
  23. package/dist/rules/no-unused-expressions.js +6 -2
  24. package/dist/rules/no-unused-expressions.js.map +1 -1
  25. package/dist/rules/restrict-plus-operands.js +12 -1
  26. package/dist/rules/restrict-plus-operands.js.map +1 -1
  27. package/dist/rules/restrict-template-expressions.js +13 -1
  28. package/dist/rules/restrict-template-expressions.js.map +1 -1
  29. package/dist/rules/use-unknown-in-catch-callback-variable.js +283 -0
  30. package/dist/rules/use-unknown-in-catch-callback-variable.js.map +1 -0
  31. package/dist/util/misc.js +10 -1
  32. package/dist/util/misc.js.map +1 -1
  33. package/docs/rules/TEMPLATE.md +10 -4
  34. package/docs/rules/{adjacent-overload-signatures.md → adjacent-overload-signatures.mdx} +11 -5
  35. package/docs/rules/{array-type.md → array-type.mdx} +24 -12
  36. package/docs/rules/{await-thenable.md → await-thenable.mdx} +10 -4
  37. package/docs/rules/{ban-ts-comment.md → ban-ts-comment.mdx} +32 -18
  38. package/docs/rules/{ban-tslint-comment.md → ban-tslint-comment.mdx} +10 -4
  39. package/docs/rules/{ban-types.md → ban-types.mdx} +11 -5
  40. package/docs/rules/{block-spacing.md → block-spacing.mdx} +3 -0
  41. package/docs/rules/{brace-style.md → brace-style.mdx} +3 -0
  42. package/docs/rules/camelcase.md +3 -5
  43. package/docs/rules/{class-literal-property-style.md → class-literal-property-style.mdx} +18 -11
  44. package/docs/rules/{class-methods-use-this.md → class-methods-use-this.mdx} +12 -6
  45. package/docs/rules/{comma-dangle.md → comma-dangle.mdx} +3 -0
  46. package/docs/rules/{comma-spacing.md → comma-spacing.mdx} +3 -0
  47. package/docs/rules/{consistent-generic-constructors.md → consistent-generic-constructors.mdx} +17 -8
  48. package/docs/rules/{consistent-indexed-object-style.md → consistent-indexed-object-style.mdx} +17 -8
  49. package/docs/rules/{consistent-return.md → consistent-return.mdx} +10 -4
  50. package/docs/rules/{consistent-type-assertions.md → consistent-type-assertions.mdx} +15 -10
  51. package/docs/rules/{consistent-type-definitions.md → consistent-type-definitions.mdx} +17 -8
  52. package/docs/rules/{consistent-type-exports.md → consistent-type-exports.mdx} +17 -8
  53. package/docs/rules/{consistent-type-imports.md → consistent-type-imports.mdx} +13 -8
  54. package/docs/rules/{default-param-last.md → default-param-last.mdx} +10 -4
  55. package/docs/rules/{dot-notation.md → dot-notation.mdx} +3 -0
  56. package/docs/rules/{explicit-function-return-type.md → explicit-function-return-type.mdx} +59 -32
  57. package/docs/rules/{explicit-member-accessibility.md → explicit-member-accessibility.mdx} +3 -0
  58. package/docs/rules/{explicit-module-boundary-types.md → explicit-module-boundary-types.mdx} +39 -21
  59. package/docs/rules/{func-call-spacing.md → func-call-spacing.mdx} +3 -0
  60. package/docs/rules/{indent.md → indent.mdx} +3 -0
  61. package/docs/rules/{init-declarations.md → init-declarations.mdx} +3 -0
  62. package/docs/rules/{key-spacing.md → key-spacing.mdx} +3 -0
  63. package/docs/rules/{keyword-spacing.md → keyword-spacing.mdx} +3 -0
  64. package/docs/rules/{lines-around-comment.md → lines-around-comment.mdx} +3 -0
  65. package/docs/rules/{lines-between-class-members.md → lines-between-class-members.mdx} +3 -0
  66. package/docs/rules/{max-params.md → max-params.mdx} +3 -0
  67. package/docs/rules/{member-delimiter-style.md → member-delimiter-style.mdx} +13 -7
  68. package/docs/rules/{member-ordering.md → member-ordering.mdx} +92 -56
  69. package/docs/rules/{method-signature-style.md → method-signature-style.mdx} +17 -8
  70. package/docs/rules/{naming-convention.md → naming-convention.mdx} +3 -0
  71. package/docs/rules/{no-array-constructor.md → no-array-constructor.mdx} +10 -4
  72. package/docs/rules/{no-array-delete.md → no-array-delete.mdx} +9 -5
  73. package/docs/rules/{no-base-to-string.md → no-base-to-string.mdx} +12 -6
  74. package/docs/rules/{no-confusing-non-null-assertion.md → no-confusing-non-null-assertion.mdx} +11 -5
  75. package/docs/rules/{no-confusing-void-expression.md → no-confusing-void-expression.mdx} +10 -4
  76. package/docs/rules/{no-dupe-class-members.md → no-dupe-class-members.mdx} +4 -1
  77. package/docs/rules/{no-duplicate-enum-values.md → no-duplicate-enum-values.mdx} +10 -4
  78. package/docs/rules/{no-duplicate-imports.md → no-duplicate-imports.mdx} +1 -1
  79. package/docs/rules/{no-duplicate-type-constituents.md → no-duplicate-type-constituents.mdx} +10 -4
  80. package/docs/rules/{no-dynamic-delete.md → no-dynamic-delete.mdx} +10 -4
  81. package/docs/rules/{no-empty-function.md → no-empty-function.mdx} +3 -0
  82. package/docs/rules/{no-empty-interface.md → no-empty-interface.mdx} +9 -5
  83. package/docs/rules/{no-explicit-any.md → no-explicit-any.mdx} +15 -9
  84. package/docs/rules/{no-extra-non-null-assertion.md → no-extra-non-null-assertion.mdx} +11 -5
  85. package/docs/rules/{no-extra-parens.md → no-extra-parens.mdx} +3 -0
  86. package/docs/rules/{no-extra-semi.md → no-extra-semi.mdx} +3 -0
  87. package/docs/rules/{no-extraneous-class.md → no-extraneous-class.mdx} +61 -33
  88. package/docs/rules/{no-floating-promises.md → no-floating-promises.mdx} +12 -6
  89. package/docs/rules/{no-for-in-array.md → no-for-in-array.mdx} +10 -4
  90. package/docs/rules/{no-implied-eval.md → no-implied-eval.mdx} +10 -4
  91. package/docs/rules/{no-import-type-side-effects.md → no-import-type-side-effects.mdx} +12 -6
  92. package/docs/rules/{no-inferrable-types.md → no-inferrable-types.mdx} +9 -5
  93. package/docs/rules/{no-invalid-this.md → no-invalid-this.mdx} +4 -1
  94. package/docs/rules/{no-invalid-void-type.md → no-invalid-void-type.mdx} +10 -4
  95. package/docs/rules/{no-loop-func.md → no-loop-func.mdx} +3 -0
  96. package/docs/rules/{no-loss-of-precision.md → no-loss-of-precision.mdx} +3 -0
  97. package/docs/rules/{no-magic-numbers.md → no-magic-numbers.mdx} +3 -0
  98. package/docs/rules/{no-meaningless-void-operator.md → no-meaningless-void-operator.mdx} +12 -4
  99. package/docs/rules/{no-misused-new.md → no-misused-new.mdx} +10 -4
  100. package/docs/rules/{no-misused-promises.md → no-misused-promises.mdx} +24 -16
  101. package/docs/rules/{no-mixed-enums.md → no-mixed-enums.mdx} +14 -6
  102. package/docs/rules/{no-namespace.md → no-namespace.mdx} +29 -18
  103. package/docs/rules/{no-non-null-asserted-nullish-coalescing.md → no-non-null-asserted-nullish-coalescing.mdx} +10 -4
  104. package/docs/rules/{no-non-null-asserted-optional-chain.md → no-non-null-asserted-optional-chain.mdx} +10 -4
  105. package/docs/rules/{no-non-null-assertion.md → no-non-null-assertion.mdx} +10 -4
  106. package/docs/rules/{no-redeclare.md → no-redeclare.mdx} +4 -1
  107. package/docs/rules/{no-redundant-type-constituents.md → no-redundant-type-constituents.mdx} +10 -4
  108. package/docs/rules/{no-require-imports.md → no-require-imports.mdx} +18 -9
  109. package/docs/rules/{no-restricted-imports.md → no-restricted-imports.mdx} +10 -4
  110. package/docs/rules/{no-shadow.md → no-shadow.mdx} +4 -1
  111. package/docs/rules/{no-this-alias.md → no-this-alias.mdx} +24 -12
  112. package/docs/rules/{no-throw-literal.md → no-throw-literal.mdx} +11 -5
  113. package/docs/rules/{no-type-alias.md → no-type-alias.mdx} +5 -2
  114. package/docs/rules/{no-unnecessary-boolean-literal-compare.md → no-unnecessary-boolean-literal-compare.mdx} +24 -12
  115. package/docs/rules/{no-unnecessary-condition.md → no-unnecessary-condition.mdx} +11 -5
  116. package/docs/rules/{no-unnecessary-qualifier.md → no-unnecessary-qualifier.mdx} +10 -4
  117. package/docs/rules/{no-unnecessary-type-arguments.md → no-unnecessary-type-arguments.mdx} +10 -4
  118. package/docs/rules/{no-unnecessary-type-assertion.md → no-unnecessary-type-assertion.mdx} +10 -4
  119. package/docs/rules/{no-unnecessary-type-constraint.md → no-unnecessary-type-constraint.mdx} +10 -4
  120. package/docs/rules/{no-unsafe-argument.md → no-unsafe-argument.mdx} +14 -10
  121. package/docs/rules/{no-unsafe-assignment.md → no-unsafe-assignment.mdx} +14 -10
  122. package/docs/rules/{no-unsafe-call.md → no-unsafe-call.mdx} +15 -9
  123. package/docs/rules/{no-unsafe-declaration-merging.md → no-unsafe-declaration-merging.mdx} +10 -4
  124. package/docs/rules/{no-unsafe-enum-comparison.md → no-unsafe-enum-comparison.mdx} +9 -5
  125. package/docs/rules/{no-unsafe-member-access.md → no-unsafe-member-access.mdx} +15 -9
  126. package/docs/rules/{no-unsafe-return.md → no-unsafe-return.mdx} +14 -10
  127. package/docs/rules/{no-unsafe-unary-minus.md → no-unsafe-unary-minus.mdx} +11 -5
  128. package/docs/rules/{no-unused-expressions.md → no-unused-expressions.mdx} +3 -0
  129. package/docs/rules/{no-unused-vars.md → no-unused-vars.mdx} +3 -0
  130. package/docs/rules/{no-use-before-define.md → no-use-before-define.mdx} +10 -4
  131. package/docs/rules/{no-useless-constructor.md → no-useless-constructor.mdx} +3 -0
  132. package/docs/rules/{no-useless-empty-export.md → no-useless-empty-export.mdx} +10 -4
  133. package/docs/rules/{no-useless-template-literals.md → no-useless-template-literals.mdx} +10 -6
  134. package/docs/rules/{no-var-requires.md → no-var-requires.mdx} +18 -9
  135. package/docs/rules/{non-nullable-type-assertion-style.md → non-nullable-type-assertion-style.mdx} +10 -4
  136. package/docs/rules/{object-curly-spacing.md → object-curly-spacing.mdx} +3 -0
  137. package/docs/rules/{padding-line-between-statements.md → padding-line-between-statements.mdx} +3 -0
  138. package/docs/rules/{parameter-properties.md → parameter-properties.mdx} +66 -36
  139. package/docs/rules/{prefer-as-const.md → prefer-as-const.mdx} +9 -5
  140. package/docs/rules/{prefer-destructuring.md → prefer-destructuring.mdx} +23 -12
  141. package/docs/rules/{prefer-enum-initializers.md → prefer-enum-initializers.mdx} +10 -4
  142. package/docs/rules/{prefer-find.md → prefer-find.mdx} +10 -4
  143. package/docs/rules/{prefer-for-of.md → prefer-for-of.mdx} +11 -5
  144. package/docs/rules/{prefer-function-type.md → prefer-function-type.mdx} +10 -4
  145. package/docs/rules/{prefer-includes.md → prefer-includes.mdx} +11 -5
  146. package/docs/rules/{prefer-literal-enum-member.md → prefer-literal-enum-member.mdx} +16 -9
  147. package/docs/rules/{prefer-namespace-keyword.md → prefer-namespace-keyword.mdx} +9 -5
  148. package/docs/rules/{prefer-nullish-coalescing.md → prefer-nullish-coalescing.mdx} +3 -0
  149. package/docs/rules/{prefer-optional-chain.md → prefer-optional-chain.mdx} +58 -33
  150. package/docs/rules/{prefer-promise-reject-errors.md → prefer-promise-reject-errors.mdx} +10 -4
  151. package/docs/rules/{prefer-readonly-parameter-types.md → prefer-readonly-parameter-types.mdx} +36 -22
  152. package/docs/rules/{prefer-readonly.md → prefer-readonly.mdx} +17 -8
  153. package/docs/rules/{prefer-reduce-type-parameter.md → prefer-reduce-type-parameter.mdx} +10 -4
  154. package/docs/rules/{prefer-regexp-exec.md → prefer-regexp-exec.mdx} +10 -4
  155. package/docs/rules/{prefer-return-this-type.md → prefer-return-this-type.mdx} +10 -4
  156. package/docs/rules/{prefer-string-starts-ends-with.md → prefer-string-starts-ends-with.mdx} +9 -5
  157. package/docs/rules/{prefer-ts-expect-error.md → prefer-ts-expect-error.mdx} +10 -4
  158. package/docs/rules/{promise-function-async.md → promise-function-async.mdx} +24 -12
  159. package/docs/rules/{quotes.md → quotes.mdx} +3 -0
  160. package/docs/rules/{require-array-sort-compare.md → require-array-sort-compare.mdx} +17 -8
  161. package/docs/rules/{require-await.md → require-await.mdx} +3 -0
  162. package/docs/rules/{restrict-plus-operands.md → restrict-plus-operands.mdx} +54 -30
  163. package/docs/rules/{restrict-template-expressions.md → restrict-template-expressions.mdx} +13 -7
  164. package/docs/rules/{return-await.md → return-await.mdx} +24 -12
  165. package/docs/rules/{semi.md → semi.mdx} +4 -1
  166. package/docs/rules/{sort-type-constituents.md → sort-type-constituents.mdx} +31 -16
  167. package/docs/rules/{space-before-blocks.md → space-before-blocks.mdx} +10 -4
  168. package/docs/rules/{space-before-function-paren.md → space-before-function-paren.mdx} +3 -0
  169. package/docs/rules/{space-infix-ops.md → space-infix-ops.mdx} +3 -0
  170. package/docs/rules/{strict-boolean-expressions.md → strict-boolean-expressions.mdx} +11 -5
  171. package/docs/rules/{switch-exhaustiveness-check.md → switch-exhaustiveness-check.mdx} +19 -14
  172. package/docs/rules/{triple-slash-reference.md → triple-slash-reference.mdx} +30 -17
  173. package/docs/rules/{type-annotation-spacing.md → type-annotation-spacing.mdx} +49 -31
  174. package/docs/rules/{typedef.md → typedef.mdx} +60 -33
  175. package/docs/rules/{unbound-method.md → unbound-method.mdx} +12 -6
  176. package/docs/rules/{unified-signatures.md → unified-signatures.mdx} +18 -9
  177. package/docs/rules/use-unknown-in-catch-callback-variable.mdx +84 -0
  178. package/package.json +7 -7
  179. /package/docs/rules/{no-parameter-properties.md → no-parameter-properties.mdx} +0 -0
@@ -32,7 +32,19 @@ exports.default = (0, util_1.createRule)({
32
32
  type: 'problem',
33
33
  docs: {
34
34
  description: 'Enforce template literal expressions to be of `string` type',
35
- recommended: 'recommended',
35
+ recommended: {
36
+ recommended: true,
37
+ strict: [
38
+ {
39
+ allowAny: false,
40
+ allowBoolean: false,
41
+ allowNullish: false,
42
+ allowNumber: false,
43
+ allowRegExp: false,
44
+ allowNever: false,
45
+ },
46
+ ],
47
+ },
36
48
  requiresTypeChecking: true,
37
49
  },
38
50
  messages: {
@@ -1 +1 @@
1
- {"version":3,"file":"restrict-template-expressions.js","sourceRoot":"","sources":["../../src/rules/restrict-template-expressions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"restrict-template-expressions.js","sourceRoot":"","sources":["../../src/rules/restrict-template-expressions.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,283 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ Object.defineProperty(exports, "__esModule", { value: true });
26
+ const utils_1 = require("@typescript-eslint/utils");
27
+ const tsutils = __importStar(require("ts-api-utils"));
28
+ const util_1 = require("../util");
29
+ const useUnknownMessageBase = 'Prefer the safe `: unknown` for a catch callback variable.';
30
+ exports.default = (0, util_1.createRule)({
31
+ name: 'use-unknown-in-catch-callback-variable',
32
+ meta: {
33
+ docs: {
34
+ description: 'Enforce typing arguments in `.catch()` callbacks as `unknown`',
35
+ requiresTypeChecking: true,
36
+ recommended: 'strict',
37
+ },
38
+ type: 'suggestion',
39
+ messages: {
40
+ useUnknown: useUnknownMessageBase,
41
+ useUnknownArrayDestructuringPattern: useUnknownMessageBase + ' The thrown error may not be iterable.',
42
+ useUnknownObjectDestructuringPattern: useUnknownMessageBase +
43
+ ' The thrown error may be nullable, or may not have the expected shape.',
44
+ useUnknownSpreadArgs: useUnknownMessageBase +
45
+ ' The argument list may contain a handler that does not use `unknown` for the catch callback variable.',
46
+ addUnknownTypeAnnotationSuggestion: 'Add an explicit `: unknown` type annotation to the catch variable.',
47
+ addUnknownRestTypeAnnotationSuggestion: 'Add an explicit `: [unknown]` type annotation to the catch rest variable.',
48
+ wrongTypeAnnotationSuggestion: 'Change existing type annotation to `: unknown`.',
49
+ wrongRestTypeAnnotationSuggestion: 'Change existing type annotation to `: [unknown]`.',
50
+ },
51
+ fixable: 'code',
52
+ schema: [],
53
+ hasSuggestions: true,
54
+ },
55
+ defaultOptions: [],
56
+ create(context) {
57
+ const services = (0, util_1.getParserServices)(context);
58
+ const checker = services.program.getTypeChecker();
59
+ function isPromiseCatchAccess(node) {
60
+ if (!(node.type === utils_1.AST_NODE_TYPES.MemberExpression &&
61
+ isStaticMemberAccessOfValue(node, 'catch'))) {
62
+ return false;
63
+ }
64
+ const objectTsNode = services.esTreeNodeToTSNodeMap.get(node.object);
65
+ const tsNode = services.esTreeNodeToTSNodeMap.get(node);
66
+ return tsutils.isThenableType(checker, tsNode, checker.getTypeAtLocation(objectTsNode));
67
+ }
68
+ function isFlaggableHandlerType(type) {
69
+ for (const unionPart of tsutils.unionTypeParts(type)) {
70
+ const callSignatures = tsutils.getCallSignaturesOfType(unionPart);
71
+ if (callSignatures.length === 0) {
72
+ // Ignore any non-function components to the type. Those are not this rule's problem.
73
+ continue;
74
+ }
75
+ for (const callSignature of callSignatures) {
76
+ const firstParam = callSignature.parameters.at(0);
77
+ if (!firstParam) {
78
+ // it's not an issue if there's no catch variable at all.
79
+ continue;
80
+ }
81
+ let firstParamType = checker.getTypeOfSymbol(firstParam);
82
+ const decl = firstParam.valueDeclaration;
83
+ if (decl != null && (0, util_1.isRestParameterDeclaration)(decl)) {
84
+ if (checker.isArrayType(firstParamType)) {
85
+ firstParamType = checker.getTypeArguments(firstParamType)[0];
86
+ }
87
+ else if (checker.isTupleType(firstParamType)) {
88
+ firstParamType = checker.getTypeArguments(firstParamType)[0];
89
+ }
90
+ else {
91
+ // a rest arg that's not an array or tuple should definitely be flagged.
92
+ return true;
93
+ }
94
+ }
95
+ if (!tsutils.isIntrinsicUnknownType(firstParamType)) {
96
+ return true;
97
+ }
98
+ }
99
+ }
100
+ return false;
101
+ }
102
+ /**
103
+ * If passed an ordinary expression, this will check it as expected.
104
+ *
105
+ * If passed a spread element, it treats it as the union of unwrapped array/tuple type.
106
+ */
107
+ function shouldFlagArgument(node) {
108
+ const argument = services.esTreeNodeToTSNodeMap.get(node);
109
+ const typeOfArgument = checker.getTypeAtLocation(argument);
110
+ return isFlaggableHandlerType(typeOfArgument);
111
+ }
112
+ function shouldFlagMultipleSpreadArgs(argumentsList) {
113
+ // One could try to be clever about unpacking fixed length tuples and stuff
114
+ // like that, but there's no need, since this is all invalid use of `.catch`
115
+ // anyway at the end of the day. Instead, we'll just check whether any of the
116
+ // possible args types would violate the rule on its own.
117
+ return argumentsList.some(argument => shouldFlagArgument(argument));
118
+ }
119
+ function shouldFlagSingleSpreadArg(node) {
120
+ const spreadArgs = services.esTreeNodeToTSNodeMap.get(node.argument);
121
+ const spreadArgsType = checker.getTypeAtLocation(spreadArgs);
122
+ if (checker.isArrayType(spreadArgsType)) {
123
+ const arrayType = checker.getTypeArguments(spreadArgsType)[0];
124
+ return isFlaggableHandlerType(arrayType);
125
+ }
126
+ if (checker.isTupleType(spreadArgsType)) {
127
+ const firstType = checker.getTypeArguments(spreadArgsType).at(0);
128
+ if (!firstType) {
129
+ // empty spread args. Suspect code, but not a problem for this rule.
130
+ return false;
131
+ }
132
+ return isFlaggableHandlerType(firstType);
133
+ }
134
+ return true;
135
+ }
136
+ /**
137
+ * Analyzes the syntax of the catch argument and makes a best effort to pinpoint
138
+ * why it's reporting, and to come up with a suggested fix if possible.
139
+ *
140
+ * This function is explicitly operating under the assumption that the
141
+ * rule _is reporting_, so it is not guaranteed to be sound to call otherwise.
142
+ */
143
+ function refineReportForNormalArgumentIfPossible(argument) {
144
+ // Only know how to be helpful if a function literal has been provided.
145
+ if (!(argument.type === utils_1.AST_NODE_TYPES.ArrowFunctionExpression ||
146
+ argument.type === utils_1.AST_NODE_TYPES.FunctionExpression)) {
147
+ return undefined;
148
+ }
149
+ const catchVariableOuterWithIncorrectTypes = (0, util_1.nullThrows)(argument.params.at(0), 'There should have been at least one parameter for the rule to have flagged.');
150
+ // Function expressions can't have parameter properties; those only exist in constructors.
151
+ const catchVariableOuter = catchVariableOuterWithIncorrectTypes;
152
+ const catchVariableInner = catchVariableOuter.type === utils_1.AST_NODE_TYPES.AssignmentPattern
153
+ ? catchVariableOuter.left
154
+ : catchVariableOuter;
155
+ switch (catchVariableInner.type) {
156
+ case utils_1.AST_NODE_TYPES.Identifier: {
157
+ const catchVariableTypeAnnotation = catchVariableInner.typeAnnotation;
158
+ if (catchVariableTypeAnnotation == null) {
159
+ return {
160
+ node: catchVariableOuter,
161
+ suggest: [
162
+ {
163
+ messageId: 'addUnknownTypeAnnotationSuggestion',
164
+ fix: (fixer) => {
165
+ if (argument.type ===
166
+ utils_1.AST_NODE_TYPES.ArrowFunctionExpression &&
167
+ (0, util_1.isParenlessArrowFunction)(argument, context.sourceCode)) {
168
+ return [
169
+ fixer.insertTextBefore(catchVariableInner, '('),
170
+ fixer.insertTextAfter(catchVariableInner, ': unknown)'),
171
+ ];
172
+ }
173
+ return [
174
+ fixer.insertTextAfter(catchVariableInner, ': unknown'),
175
+ ];
176
+ },
177
+ },
178
+ ],
179
+ };
180
+ }
181
+ return {
182
+ node: catchVariableOuter,
183
+ suggest: [
184
+ {
185
+ messageId: 'wrongTypeAnnotationSuggestion',
186
+ fix: (fixer) => fixer.replaceText(catchVariableTypeAnnotation, ': unknown'),
187
+ },
188
+ ],
189
+ };
190
+ }
191
+ case utils_1.AST_NODE_TYPES.ArrayPattern: {
192
+ return {
193
+ node: catchVariableOuter,
194
+ messageId: 'useUnknownArrayDestructuringPattern',
195
+ };
196
+ }
197
+ case utils_1.AST_NODE_TYPES.ObjectPattern: {
198
+ return {
199
+ node: catchVariableOuter,
200
+ messageId: 'useUnknownObjectDestructuringPattern',
201
+ };
202
+ }
203
+ case utils_1.AST_NODE_TYPES.RestElement: {
204
+ const catchVariableTypeAnnotation = catchVariableInner.typeAnnotation;
205
+ if (catchVariableTypeAnnotation == null) {
206
+ return {
207
+ node: catchVariableOuter,
208
+ suggest: [
209
+ {
210
+ messageId: 'addUnknownRestTypeAnnotationSuggestion',
211
+ fix: (fixer) => fixer.insertTextAfter(catchVariableInner, ': [unknown]'),
212
+ },
213
+ ],
214
+ };
215
+ }
216
+ return {
217
+ node: catchVariableOuter,
218
+ suggest: [
219
+ {
220
+ messageId: 'wrongRestTypeAnnotationSuggestion',
221
+ fix: (fixer) => fixer.replaceText(catchVariableTypeAnnotation, ': [unknown]'),
222
+ },
223
+ ],
224
+ };
225
+ }
226
+ }
227
+ }
228
+ return {
229
+ CallExpression(node) {
230
+ if (node.arguments.length === 0 || !isPromiseCatchAccess(node.callee)) {
231
+ return;
232
+ }
233
+ const firstArgument = node.arguments[0];
234
+ // Deal with some special cases around spread element args.
235
+ // promise.catch(...handlers), promise.catch(...handlers, ...moreHandlers).
236
+ if (firstArgument.type === utils_1.AST_NODE_TYPES.SpreadElement) {
237
+ if (node.arguments.length === 1) {
238
+ if (shouldFlagSingleSpreadArg(firstArgument)) {
239
+ context.report({
240
+ node: firstArgument,
241
+ messageId: 'useUnknown',
242
+ });
243
+ }
244
+ }
245
+ else if (shouldFlagMultipleSpreadArgs(node.arguments)) {
246
+ context.report({
247
+ node,
248
+ messageId: 'useUnknownSpreadArgs',
249
+ });
250
+ }
251
+ return;
252
+ }
253
+ // First argument is an "ordinary" argument (i.e. not a spread argument)
254
+ // promise.catch(f), promise.catch(() => {}), promise.catch(<expression>, <<other-args>>)
255
+ if (shouldFlagArgument(firstArgument)) {
256
+ // We are now guaranteed to report, but we have a bit of work to do
257
+ // to determine exactly where, and whether we can fix it.
258
+ const overrides = refineReportForNormalArgumentIfPossible(firstArgument);
259
+ context.report({
260
+ node: firstArgument,
261
+ messageId: 'useUnknown',
262
+ ...overrides,
263
+ });
264
+ }
265
+ },
266
+ };
267
+ },
268
+ });
269
+ /**
270
+ * Answers whether the member expression looks like
271
+ * `x.memberName`, `x['memberName']`,
272
+ * or even `const mn = 'memberName'; x[mn]` (or optional variants thereof).
273
+ */
274
+ function isStaticMemberAccessOfValue(memberExpression, value, scope) {
275
+ if (!memberExpression.computed) {
276
+ // x.memberName case.
277
+ return memberExpression.property.name === value;
278
+ }
279
+ // x['memberName'] cases.
280
+ const staticValueResult = (0, util_1.getStaticValue)(memberExpression.property, scope);
281
+ return staticValueResult != null && value === staticValueResult.value;
282
+ }
283
+ //# sourceMappingURL=use-unknown-in-catch-callback-variable.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-unknown-in-catch-callback-variable.js","sourceRoot":"","sources":["../../src/rules/use-unknown-in-catch-callback-variable.ts"],"names":[],"mappings":"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"}
package/dist/util/misc.js CHANGED
@@ -26,10 +26,11 @@ var __importStar = (this && this.__importStar) || function (mod) {
26
26
  return result;
27
27
  };
28
28
  Object.defineProperty(exports, "__esModule", { value: true });
29
- exports.findLastIndex = exports.upperCaseFirst = exports.typeNodeRequiresParentheses = exports.MemberNameType = exports.isDefinitionFile = exports.getNameFromMember = exports.getNameFromIndexSignature = exports.getEnumNames = exports.formatWordList = exports.findFirstResult = exports.arraysAreEqual = exports.arrayGroupByToMap = void 0;
29
+ exports.findLastIndex = exports.upperCaseFirst = exports.typeNodeRequiresParentheses = exports.MemberNameType = exports.isParenlessArrowFunction = exports.isRestParameterDeclaration = exports.isDefinitionFile = exports.getNameFromMember = exports.getNameFromIndexSignature = exports.getEnumNames = exports.formatWordList = exports.findFirstResult = exports.arraysAreEqual = exports.arrayGroupByToMap = void 0;
30
30
  const type_utils_1 = require("@typescript-eslint/type-utils");
31
31
  const utils_1 = require("@typescript-eslint/utils");
32
32
  const ts = __importStar(require("typescript"));
33
+ const astUtils_1 = require("./astUtils");
33
34
  const DEFINITION_EXTENSIONS = [
34
35
  ts.Extension.Dts,
35
36
  ts.Extension.Dcts,
@@ -186,4 +187,12 @@ function typeNodeRequiresParentheses(node, text) {
186
187
  (node.type === utils_1.AST_NODE_TYPES.TSIntersectionType && text.startsWith('&')));
187
188
  }
188
189
  exports.typeNodeRequiresParentheses = typeNodeRequiresParentheses;
190
+ function isRestParameterDeclaration(decl) {
191
+ return ts.isParameter(decl) && decl.dotDotDotToken != null;
192
+ }
193
+ exports.isRestParameterDeclaration = isRestParameterDeclaration;
194
+ function isParenlessArrowFunction(node, sourceCode) {
195
+ return (node.params.length === 1 && !(0, astUtils_1.isParenthesized)(node.params[0], sourceCode));
196
+ }
197
+ exports.isParenlessArrowFunction = isParenlessArrowFunction;
189
198
  //# sourceMappingURL=misc.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"misc.js","sourceRoot":"","sources":["../../src/util/misc.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"misc.js","sourceRoot":"","sources":["../../src/util/misc.ts"],"names":[],"mappings":"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"}
@@ -2,6 +2,9 @@
2
2
  description: '<Description from rule metadata here>'
3
3
  ---
4
4
 
5
+ import Tabs from '@theme/Tabs';
6
+ import TabItem from '@theme/TabItem';
7
+
5
8
  > 🛑 This file is source code, not the primary documentation location! 🛑
6
9
  >
7
10
  > See **https://typescript-eslint.io/rules/RULE_NAME_REPLACEME** for documentation.
@@ -10,20 +13,23 @@ description: '<Description from rule metadata here>'
10
13
 
11
14
  To fill out: tell us more about this rule.
12
15
 
13
- <!--tabs-->
14
-
15
- ### ❌ Incorrect
16
+ <Tabs>
17
+ <TabItem value="❌ Incorrect">
16
18
 
17
19
  ```ts
18
20
  // To fill out: incorrect code
19
21
  ```
20
22
 
21
- ### ✅ Correct
23
+ </TabItem>
24
+ <TabItem value="✅ Correct">
22
25
 
23
26
  ```ts
24
27
  // To fill out: correct code
25
28
  ```
26
29
 
30
+ </TabItem>
31
+ </Tabs>
32
+
27
33
  ## When Not To Use It
28
34
 
29
35
  To fill out: why wouldn't you want to use this rule?
@@ -2,6 +2,9 @@
2
2
  description: 'Require that function overload signatures be consecutive.'
3
3
  ---
4
4
 
5
+ import Tabs from '@theme/Tabs';
6
+ import TabItem from '@theme/TabItem';
7
+
5
8
  > 🛑 This file is source code, not the primary documentation location! 🛑
6
9
  >
7
10
  > See **https://typescript-eslint.io/rules/adjacent-overload-signatures** for documentation.
@@ -12,9 +15,8 @@ If Signatures placed elsewhere in the type are easier to be missed by future dev
12
15
 
13
16
  ## Examples
14
17
 
15
- <!--tabs-->
16
-
17
- ### ❌ Incorrect
18
+ <Tabs>
19
+ <TabItem value="❌ Incorrect">
18
20
 
19
21
  ```ts
20
22
  declare namespace Foo {
@@ -51,7 +53,8 @@ export function bar(): void;
51
53
  export function foo(sn: string | number): void;
52
54
  ```
53
55
 
54
- ### ✅ Correct
56
+ </TabItem>
57
+ <TabItem value="✅ Correct">
55
58
 
56
59
  ```ts
57
60
  declare namespace Foo {
@@ -88,6 +91,9 @@ export function foo(n: number): void;
88
91
  export function foo(sn: string | number): void;
89
92
  ```
90
93
 
94
+ </TabItem>
95
+ </Tabs>
96
+
91
97
  ## When Not To Use It
92
98
 
93
99
  It can sometimes be useful to place overload signatures alongside other meaningful parts of a type.
@@ -96,4 +102,4 @@ You might consider using [ESLint disable comments](https://eslint.org/docs/lates
96
102
 
97
103
  ## Related To
98
104
 
99
- - [`unified-signatures`](./unified-signatures.md)
105
+ - [`unified-signatures`](./unified-signatures.mdx)
@@ -2,6 +2,9 @@
2
2
  description: 'Require consistently using either `T[]` or `Array<T>` for arrays.'
3
3
  ---
4
4
 
5
+ import Tabs from '@theme/Tabs';
6
+ import TabItem from '@theme/TabItem';
7
+
5
8
  > 🛑 This file is source code, not the primary documentation location! 🛑
6
9
  >
7
10
  > See **https://typescript-eslint.io/rules/array-type** for documentation.
@@ -18,50 +21,55 @@ The default config will enforce that all mutable and readonly arrays use the `'a
18
21
 
19
22
  Always use `T[]` or `readonly T[]` for all array types.
20
23
 
21
- <!--tabs-->
22
-
23
- #### ❌ Incorrect
24
+ <Tabs>
25
+ <TabItem value="❌ Incorrect">
24
26
 
25
27
  ```ts option='{ "default": "array" }'
26
28
  const x: Array<string> = ['a', 'b'];
27
29
  const y: ReadonlyArray<string> = ['a', 'b'];
28
30
  ```
29
31
 
30
- #### ✅ Correct
32
+ </TabItem>
33
+ <TabItem value="✅ Correct">
31
34
 
32
35
  ```ts option='{ "default": "array" }'
33
36
  const x: string[] = ['a', 'b'];
34
37
  const y: readonly string[] = ['a', 'b'];
35
38
  ```
36
39
 
40
+ </TabItem>
41
+ </Tabs>
42
+
37
43
  ### `"generic"`
38
44
 
39
45
  Always use `Array<T>` or `ReadonlyArray<T>` for all array types.
40
46
 
41
- <!--tabs-->
42
-
43
- #### ❌ Incorrect
47
+ <Tabs>
48
+ <TabItem value="❌ Incorrect">
44
49
 
45
50
  ```ts option='{ "default": "generic" }'
46
51
  const x: string[] = ['a', 'b'];
47
52
  const y: readonly string[] = ['a', 'b'];
48
53
  ```
49
54
 
50
- #### ✅ Correct
55
+ </TabItem>
56
+ <TabItem value="✅ Correct">
51
57
 
52
58
  ```ts option='{ "default": "generic" }'
53
59
  const x: Array<string> = ['a', 'b'];
54
60
  const y: ReadonlyArray<string> = ['a', 'b'];
55
61
  ```
56
62
 
63
+ </TabItem>
64
+ </Tabs>
65
+
57
66
  ### `"array-simple"`
58
67
 
59
68
  Use `T[]` or `readonly T[]` for simple types (i.e. types which are just primitive names or type references).
60
69
  Use `Array<T>` or `ReadonlyArray<T>` for all other types (union types, intersection types, object types, function types, etc).
61
70
 
62
- <!--tabs-->
63
-
64
- #### ❌ Incorrect
71
+ <Tabs>
72
+ <TabItem value="❌ Incorrect">
65
73
 
66
74
  ```ts option='{ "default": "array-simple" }'
67
75
  const a: (string | number)[] = ['a', 'b'];
@@ -72,7 +80,8 @@ const e: Array<string> = ['a', 'b'];
72
80
  const f: ReadonlyArray<string> = ['a', 'b'];
73
81
  ```
74
82
 
75
- #### ✅ Correct
83
+ </TabItem>
84
+ <TabItem value="✅ Correct">
76
85
 
77
86
  ```ts option='{ "default": "array-simple" }'
78
87
  const a: Array<string | number> = ['a', 'b'];
@@ -83,6 +92,9 @@ const e: string[] = ['a', 'b'];
83
92
  const f: readonly string[] = ['a', 'b'];
84
93
  ```
85
94
 
95
+ </TabItem>
96
+ </Tabs>
97
+
86
98
  ## Combination Matrix
87
99
 
88
100
  This matrix lists all possible option combinations and their expected results for different types of Arrays.
@@ -2,6 +2,9 @@
2
2
  description: 'Disallow awaiting a value that is not a Thenable.'
3
3
  ---
4
4
 
5
+ import Tabs from '@theme/Tabs';
6
+ import TabItem from '@theme/TabItem';
7
+
5
8
  > 🛑 This file is source code, not the primary documentation location! 🛑
6
9
  >
7
10
  > See **https://typescript-eslint.io/rules/await-thenable** for documentation.
@@ -14,9 +17,8 @@ While doing so is valid JavaScript, it is often a programmer error, such as forg
14
17
 
15
18
  ## Examples
16
19
 
17
- <!--tabs-->
18
-
19
- ### ❌ Incorrect
20
+ <Tabs>
21
+ <TabItem value="❌ Incorrect">
20
22
 
21
23
  ```ts
22
24
  await 'value';
@@ -25,7 +27,8 @@ const createValue = () => 'value';
25
27
  await createValue();
26
28
  ```
27
29
 
28
- ### ✅ Correct
30
+ </TabItem>
31
+ <TabItem value="✅ Correct">
29
32
 
30
33
  ```ts
31
34
  await Promise.resolve('value');
@@ -34,6 +37,9 @@ const createValue = async () => 'value';
34
37
  await createValue();
35
38
  ```
36
39
 
40
+ </TabItem>
41
+ </Tabs>
42
+
37
43
  ## When Not To Use It
38
44
 
39
45
  If you want to allow code to `await` non-Promise values.