@typescript-eslint/eslint-plugin 7.2.1-alpha.4 → 7.3.0
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.
- package/dist/rules/ban-ts-comment.js +35 -15
- package/dist/rules/ban-ts-comment.js.map +1 -1
- package/dist/rules/class-literal-property-style.js +67 -25
- package/dist/rules/class-literal-property-style.js.map +1 -1
- package/dist/rules/explicit-function-return-type.js +42 -24
- package/dist/rules/explicit-function-return-type.js.map +1 -1
- package/dist/rules/explicit-module-boundary-types.js +44 -22
- package/dist/rules/explicit-module-boundary-types.js.map +1 -1
- package/dist/rules/no-unnecessary-type-assertion.js +11 -38
- package/dist/rules/no-unnecessary-type-assertion.js.map +1 -1
- package/dist/rules/prefer-for-of.js +1 -39
- package/dist/rules/prefer-for-of.js.map +1 -1
- package/dist/rules/prefer-reduce-type-parameter.js +32 -1
- package/dist/rules/prefer-reduce-type-parameter.js.map +1 -1
- package/dist/util/explicitReturnTypeUtils.js +15 -20
- package/dist/util/explicitReturnTypeUtils.js.map +1 -1
- package/dist/util/index.js +1 -0
- package/dist/util/index.js.map +1 -1
- package/dist/util/isAssignee.js +44 -0
- package/dist/util/isAssignee.js.map +1 -0
- package/docs/rules/no-unnecessary-type-assertion.mdx +5 -1
- package/package.json +7 -7
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.defaultMinimumDescriptionLength = void 0;
|
|
4
3
|
const utils_1 = require("@typescript-eslint/utils");
|
|
5
4
|
const util_1 = require("../util");
|
|
6
|
-
|
|
5
|
+
const defaultMinimumDescriptionLength = 3;
|
|
7
6
|
exports.default = (0, util_1.createRule)({
|
|
8
7
|
name: 'ban-ts-comment',
|
|
9
8
|
meta: {
|
|
@@ -53,7 +52,7 @@ exports.default = (0, util_1.createRule)({
|
|
|
53
52
|
'ts-check': { $ref: '#/items/0/$defs/directiveConfigSchema' },
|
|
54
53
|
minimumDescriptionLength: {
|
|
55
54
|
type: 'number',
|
|
56
|
-
default:
|
|
55
|
+
default: defaultMinimumDescriptionLength,
|
|
57
56
|
},
|
|
58
57
|
},
|
|
59
58
|
type: 'object',
|
|
@@ -67,16 +66,18 @@ exports.default = (0, util_1.createRule)({
|
|
|
67
66
|
'ts-ignore': true,
|
|
68
67
|
'ts-nocheck': true,
|
|
69
68
|
'ts-check': false,
|
|
70
|
-
minimumDescriptionLength:
|
|
69
|
+
minimumDescriptionLength: defaultMinimumDescriptionLength,
|
|
71
70
|
},
|
|
72
71
|
],
|
|
73
72
|
create(context, [options]) {
|
|
73
|
+
// https://github.com/microsoft/TypeScript/blob/6f1ad5ad8bec5671f7e951a3524b62d82ec4be68/src/compiler/parser.ts#L10591
|
|
74
|
+
const singleLinePragmaRegEx = /^\/\/\/?\s*@ts-(?<directive>check|nocheck)(?<description>.*)$/;
|
|
74
75
|
/*
|
|
75
76
|
The regex used are taken from the ones used in the official TypeScript repo -
|
|
76
|
-
https://github.com/microsoft/TypeScript/blob/
|
|
77
|
+
https://github.com/microsoft/TypeScript/blob/6f1ad5ad8bec5671f7e951a3524b62d82ec4be68/src/compiler/scanner.ts#L340-L348
|
|
77
78
|
*/
|
|
78
|
-
const commentDirectiveRegExSingleLine = /^\/*\s*@ts-(?<directive>expect-error|ignore
|
|
79
|
-
const commentDirectiveRegExMultiLine = /^\s*(?:\/|\*)*\s*@ts-(?<directive>expect-error|ignore
|
|
79
|
+
const commentDirectiveRegExSingleLine = /^\/*\s*@ts-(?<directive>expect-error|ignore)(?<description>.*)/;
|
|
80
|
+
const commentDirectiveRegExMultiLine = /^\s*(?:\/|\*)*\s*@ts-(?<directive>expect-error|ignore)(?<description>.*)/;
|
|
80
81
|
const descriptionFormats = new Map();
|
|
81
82
|
for (const directive of [
|
|
82
83
|
'ts-expect-error',
|
|
@@ -89,19 +90,37 @@ exports.default = (0, util_1.createRule)({
|
|
|
89
90
|
descriptionFormats.set(directive, new RegExp(option.descriptionFormat));
|
|
90
91
|
}
|
|
91
92
|
}
|
|
93
|
+
function execDirectiveRegEx(regex, str) {
|
|
94
|
+
const match = regex.exec(str);
|
|
95
|
+
if (!match) {
|
|
96
|
+
return null;
|
|
97
|
+
}
|
|
98
|
+
const { directive, description } = (0, util_1.nullThrows)(match.groups, 'RegExp should contain groups');
|
|
99
|
+
return {
|
|
100
|
+
directive: (0, util_1.nullThrows)(directive, 'RegExp should contain "directive" group'),
|
|
101
|
+
description: (0, util_1.nullThrows)(description, 'RegExp should contain "description" group'),
|
|
102
|
+
};
|
|
103
|
+
}
|
|
104
|
+
function findDirectiveInComment(comment) {
|
|
105
|
+
if (comment.type === utils_1.AST_TOKEN_TYPES.Line) {
|
|
106
|
+
const matchedPragma = execDirectiveRegEx(singleLinePragmaRegEx, `//${comment.value}`);
|
|
107
|
+
if (matchedPragma) {
|
|
108
|
+
return matchedPragma;
|
|
109
|
+
}
|
|
110
|
+
return execDirectiveRegEx(commentDirectiveRegExSingleLine, comment.value);
|
|
111
|
+
}
|
|
112
|
+
const commentLines = comment.value.split('\n');
|
|
113
|
+
return execDirectiveRegEx(commentDirectiveRegExMultiLine, commentLines[commentLines.length - 1]);
|
|
114
|
+
}
|
|
92
115
|
return {
|
|
93
116
|
Program() {
|
|
94
117
|
const comments = context.sourceCode.getAllComments();
|
|
95
118
|
comments.forEach(comment => {
|
|
96
|
-
const
|
|
97
|
-
? commentDirectiveRegExSingleLine
|
|
98
|
-
: commentDirectiveRegExMultiLine;
|
|
99
|
-
const match = regExp.exec(comment.value);
|
|
119
|
+
const match = findDirectiveInComment(comment);
|
|
100
120
|
if (!match) {
|
|
101
121
|
return;
|
|
102
122
|
}
|
|
103
|
-
|
|
104
|
-
const { directive, description } = match.groups;
|
|
123
|
+
const { directive, description } = match;
|
|
105
124
|
const fullDirective = `ts-${directive}`;
|
|
106
125
|
const option = options[fullDirective];
|
|
107
126
|
if (option === true) {
|
|
@@ -133,9 +152,10 @@ exports.default = (0, util_1.createRule)({
|
|
|
133
152
|
}
|
|
134
153
|
if (option === 'allow-with-description' ||
|
|
135
154
|
(typeof option === 'object' && option.descriptionFormat)) {
|
|
136
|
-
const { minimumDescriptionLength
|
|
155
|
+
const { minimumDescriptionLength } = options;
|
|
137
156
|
const format = descriptionFormats.get(fullDirective);
|
|
138
|
-
if ((0, util_1.getStringLength)(description.trim()) <
|
|
157
|
+
if ((0, util_1.getStringLength)(description.trim()) <
|
|
158
|
+
(0, util_1.nullThrows)(minimumDescriptionLength, 'Expected minimumDescriptionLength to be set')) {
|
|
139
159
|
context.report({
|
|
140
160
|
data: { directive, minimumDescriptionLength },
|
|
141
161
|
node: comment,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ban-ts-comment.js","sourceRoot":"","sources":["../../src/rules/ban-ts-comment.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ban-ts-comment.js","sourceRoot":"","sources":["../../src/rules/ban-ts-comment.ts"],"names":[],"mappings":"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"}
|
|
@@ -37,8 +37,55 @@ exports.default = (0, util_1.createRule)({
|
|
|
37
37
|
},
|
|
38
38
|
defaultOptions: ['fields'],
|
|
39
39
|
create(context, [style]) {
|
|
40
|
-
|
|
41
|
-
|
|
40
|
+
const propertiesInfoStack = [];
|
|
41
|
+
function getStringValue(node) {
|
|
42
|
+
return (0, util_1.getStaticStringValue)(node) ?? context.sourceCode.getText(node);
|
|
43
|
+
}
|
|
44
|
+
function enterClassBody() {
|
|
45
|
+
propertiesInfoStack.push({
|
|
46
|
+
properties: [],
|
|
47
|
+
excludeSet: new Set(),
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
function exitClassBody() {
|
|
51
|
+
const { properties, excludeSet } = (0, util_1.nullThrows)(propertiesInfoStack.pop(), 'Stack should exist on class exit');
|
|
52
|
+
properties.forEach(node => {
|
|
53
|
+
const { value } = node;
|
|
54
|
+
if (!value || !isSupportedLiteral(value)) {
|
|
55
|
+
return;
|
|
56
|
+
}
|
|
57
|
+
const name = getStringValue(node.key);
|
|
58
|
+
if (excludeSet.has(name)) {
|
|
59
|
+
return;
|
|
60
|
+
}
|
|
61
|
+
context.report({
|
|
62
|
+
node: node.key,
|
|
63
|
+
messageId: 'preferGetterStyle',
|
|
64
|
+
suggest: [
|
|
65
|
+
{
|
|
66
|
+
messageId: 'preferGetterStyleSuggestion',
|
|
67
|
+
fix(fixer) {
|
|
68
|
+
const name = context.sourceCode.getText(node.key);
|
|
69
|
+
let text = '';
|
|
70
|
+
text += printNodeModifiers(node, 'get');
|
|
71
|
+
text += node.computed ? `[${name}]` : name;
|
|
72
|
+
text += `() { return ${context.sourceCode.getText(value)}; }`;
|
|
73
|
+
return fixer.replaceText(node, text);
|
|
74
|
+
},
|
|
75
|
+
},
|
|
76
|
+
],
|
|
77
|
+
});
|
|
78
|
+
});
|
|
79
|
+
}
|
|
80
|
+
function excludeAssignedProperty(node) {
|
|
81
|
+
if ((0, util_1.isAssignee)(node)) {
|
|
82
|
+
const { excludeSet } = propertiesInfoStack[propertiesInfoStack.length - 1];
|
|
83
|
+
const name = (0, util_1.getStaticStringValue)(node.property) ??
|
|
84
|
+
context.sourceCode.getText(node.property);
|
|
85
|
+
if (name) {
|
|
86
|
+
excludeSet.add(name);
|
|
87
|
+
}
|
|
88
|
+
}
|
|
42
89
|
}
|
|
43
90
|
return {
|
|
44
91
|
...(style === 'fields' && {
|
|
@@ -56,12 +103,12 @@ exports.default = (0, util_1.createRule)({
|
|
|
56
103
|
if (!argument || !isSupportedLiteral(argument)) {
|
|
57
104
|
return;
|
|
58
105
|
}
|
|
59
|
-
const name =
|
|
106
|
+
const name = getStringValue(node.key);
|
|
60
107
|
if (node.parent.type === utils_1.AST_NODE_TYPES.ClassBody) {
|
|
61
108
|
const hasDuplicateKeySetter = node.parent.body.some(element => {
|
|
62
109
|
return (element.type === utils_1.AST_NODE_TYPES.MethodDefinition &&
|
|
63
110
|
element.kind === 'set' &&
|
|
64
|
-
|
|
111
|
+
getStringValue(element.key) === name);
|
|
65
112
|
});
|
|
66
113
|
if (hasDuplicateKeySetter) {
|
|
67
114
|
return;
|
|
@@ -87,31 +134,26 @@ exports.default = (0, util_1.createRule)({
|
|
|
87
134
|
},
|
|
88
135
|
}),
|
|
89
136
|
...(style === 'getters' && {
|
|
137
|
+
ClassBody: enterClassBody,
|
|
138
|
+
'ClassBody:exit': exitClassBody,
|
|
139
|
+
'MethodDefinition[kind="constructor"] ThisExpression'(node) {
|
|
140
|
+
if (node.parent.type === utils_1.AST_NODE_TYPES.MemberExpression) {
|
|
141
|
+
let parent = node.parent;
|
|
142
|
+
while (!(0, util_1.isFunction)(parent)) {
|
|
143
|
+
parent = parent.parent;
|
|
144
|
+
}
|
|
145
|
+
if (parent.parent.type === utils_1.AST_NODE_TYPES.MethodDefinition &&
|
|
146
|
+
parent.parent.kind === 'constructor') {
|
|
147
|
+
excludeAssignedProperty(node.parent);
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
},
|
|
90
151
|
PropertyDefinition(node) {
|
|
91
152
|
if (!node.readonly || node.declare) {
|
|
92
153
|
return;
|
|
93
154
|
}
|
|
94
|
-
const {
|
|
95
|
-
|
|
96
|
-
return;
|
|
97
|
-
}
|
|
98
|
-
context.report({
|
|
99
|
-
node: node.key,
|
|
100
|
-
messageId: 'preferGetterStyle',
|
|
101
|
-
suggest: [
|
|
102
|
-
{
|
|
103
|
-
messageId: 'preferGetterStyleSuggestion',
|
|
104
|
-
fix(fixer) {
|
|
105
|
-
const name = context.sourceCode.getText(node.key);
|
|
106
|
-
let text = '';
|
|
107
|
-
text += printNodeModifiers(node, 'get');
|
|
108
|
-
text += node.computed ? `[${name}]` : name;
|
|
109
|
-
text += `() { return ${context.sourceCode.getText(value)}; }`;
|
|
110
|
-
return fixer.replaceText(node, text);
|
|
111
|
-
},
|
|
112
|
-
},
|
|
113
|
-
],
|
|
114
|
-
});
|
|
155
|
+
const { properties } = propertiesInfoStack[propertiesInfoStack.length - 1];
|
|
156
|
+
properties.push(node);
|
|
115
157
|
},
|
|
116
158
|
}),
|
|
117
159
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"class-literal-property-style.js","sourceRoot":"","sources":["../../src/rules/class-literal-property-style.ts"],"names":[],"mappings":";;AACA,oDAA0D;AAE1D,
|
|
1
|
+
{"version":3,"file":"class-literal-property-style.js","sourceRoot":"","sources":["../../src/rules/class-literal-property-style.ts"],"names":[],"mappings":"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"}
|
|
@@ -70,6 +70,16 @@ exports.default = (0, util_1.createRule)({
|
|
|
70
70
|
},
|
|
71
71
|
],
|
|
72
72
|
create(context, [options]) {
|
|
73
|
+
const functionInfoStack = [];
|
|
74
|
+
function enterFunction(node) {
|
|
75
|
+
functionInfoStack.push({
|
|
76
|
+
node,
|
|
77
|
+
returns: [],
|
|
78
|
+
});
|
|
79
|
+
}
|
|
80
|
+
function popFunctionInfo(exitNodeType) {
|
|
81
|
+
return (0, util_1.nullThrows)(functionInfoStack.pop(), `Stack should exist on ${exitNodeType} exit`);
|
|
82
|
+
}
|
|
73
83
|
function isAllowedFunction(node) {
|
|
74
84
|
if (options.allowFunctionsWithoutTypeParameters && !node.typeParameters) {
|
|
75
85
|
return true;
|
|
@@ -120,42 +130,50 @@ exports.default = (0, util_1.createRule)({
|
|
|
120
130
|
function isIIFE(node) {
|
|
121
131
|
return node.parent.type === utils_1.AST_NODE_TYPES.CallExpression;
|
|
122
132
|
}
|
|
133
|
+
function exitFunctionExpression(node) {
|
|
134
|
+
const info = popFunctionInfo('function expression');
|
|
135
|
+
if (options.allowConciseArrowFunctionExpressionsStartingWithVoid &&
|
|
136
|
+
node.type === utils_1.AST_NODE_TYPES.ArrowFunctionExpression &&
|
|
137
|
+
node.expression &&
|
|
138
|
+
node.body.type === utils_1.AST_NODE_TYPES.UnaryExpression &&
|
|
139
|
+
node.body.operator === 'void') {
|
|
140
|
+
return;
|
|
141
|
+
}
|
|
142
|
+
if (isAllowedFunction(node)) {
|
|
143
|
+
return;
|
|
144
|
+
}
|
|
145
|
+
if (options.allowTypedFunctionExpressions &&
|
|
146
|
+
((0, explicitReturnTypeUtils_1.isValidFunctionExpressionReturnType)(node, options) ||
|
|
147
|
+
(0, explicitReturnTypeUtils_1.ancestorHasReturnType)(node))) {
|
|
148
|
+
return;
|
|
149
|
+
}
|
|
150
|
+
(0, explicitReturnTypeUtils_1.checkFunctionReturnType)(info, options, context.sourceCode, loc => context.report({
|
|
151
|
+
node,
|
|
152
|
+
loc,
|
|
153
|
+
messageId: 'missingReturnType',
|
|
154
|
+
}));
|
|
155
|
+
}
|
|
123
156
|
return {
|
|
124
|
-
'ArrowFunctionExpression, FunctionExpression'
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
node.body.operator === 'void') {
|
|
130
|
-
return;
|
|
131
|
-
}
|
|
132
|
-
if (isAllowedFunction(node)) {
|
|
133
|
-
return;
|
|
134
|
-
}
|
|
135
|
-
if (options.allowTypedFunctionExpressions &&
|
|
136
|
-
((0, explicitReturnTypeUtils_1.isValidFunctionExpressionReturnType)(node, options) ||
|
|
137
|
-
(0, explicitReturnTypeUtils_1.ancestorHasReturnType)(node))) {
|
|
138
|
-
return;
|
|
139
|
-
}
|
|
140
|
-
(0, explicitReturnTypeUtils_1.checkFunctionReturnType)(node, options, context.sourceCode, loc => context.report({
|
|
141
|
-
node,
|
|
142
|
-
loc,
|
|
143
|
-
messageId: 'missingReturnType',
|
|
144
|
-
}));
|
|
145
|
-
},
|
|
146
|
-
FunctionDeclaration(node) {
|
|
157
|
+
'ArrowFunctionExpression, FunctionExpression, FunctionDeclaration': enterFunction,
|
|
158
|
+
'ArrowFunctionExpression:exit': exitFunctionExpression,
|
|
159
|
+
'FunctionExpression:exit': exitFunctionExpression,
|
|
160
|
+
'FunctionDeclaration:exit'(node) {
|
|
161
|
+
const info = popFunctionInfo('function declaration');
|
|
147
162
|
if (isAllowedFunction(node)) {
|
|
148
163
|
return;
|
|
149
164
|
}
|
|
150
165
|
if (options.allowTypedFunctionExpressions && node.returnType) {
|
|
151
166
|
return;
|
|
152
167
|
}
|
|
153
|
-
(0, explicitReturnTypeUtils_1.checkFunctionReturnType)(
|
|
168
|
+
(0, explicitReturnTypeUtils_1.checkFunctionReturnType)(info, options, context.sourceCode, loc => context.report({
|
|
154
169
|
node,
|
|
155
170
|
loc,
|
|
156
171
|
messageId: 'missingReturnType',
|
|
157
172
|
}));
|
|
158
173
|
},
|
|
174
|
+
ReturnStatement(node) {
|
|
175
|
+
functionInfoStack.at(-1)?.returns.push(node);
|
|
176
|
+
},
|
|
159
177
|
};
|
|
160
178
|
},
|
|
161
179
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"explicit-function-return-type.js","sourceRoot":"","sources":["../../src/rules/explicit-function-return-type.ts"],"names":[],"mappings":";;AACA,oDAA0D;AAE1D,
|
|
1
|
+
{"version":3,"file":"explicit-function-return-type.js","sourceRoot":"","sources":["../../src/rules/explicit-function-return-type.ts"],"names":[],"mappings":"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"}
|
|
@@ -68,11 +68,21 @@ exports.default = (0, util_1.createRule)({
|
|
|
68
68
|
create(context, [options]) {
|
|
69
69
|
// tracks all of the functions we've already checked
|
|
70
70
|
const checkedFunctions = new Set();
|
|
71
|
-
|
|
72
|
-
const
|
|
71
|
+
const functionStack = [];
|
|
72
|
+
const functionReturnsMap = new Map();
|
|
73
73
|
// all nodes visited, avoids infinite recursion for cyclic references
|
|
74
74
|
// (such as class member referring to itself)
|
|
75
75
|
const alreadyVisited = new Set();
|
|
76
|
+
function getReturnsInFunction(node) {
|
|
77
|
+
return functionReturnsMap.get(node) ?? [];
|
|
78
|
+
}
|
|
79
|
+
function enterFunction(node) {
|
|
80
|
+
functionStack.push(node);
|
|
81
|
+
functionReturnsMap.set(node, []);
|
|
82
|
+
}
|
|
83
|
+
function exitFunction() {
|
|
84
|
+
functionStack.pop();
|
|
85
|
+
}
|
|
76
86
|
/*
|
|
77
87
|
# How the rule works:
|
|
78
88
|
|
|
@@ -84,10 +94,10 @@ exports.default = (0, util_1.createRule)({
|
|
|
84
94
|
any of them are part of a higher-order function
|
|
85
95
|
*/
|
|
86
96
|
return {
|
|
87
|
-
ExportDefaultDeclaration(node) {
|
|
97
|
+
'ExportDefaultDeclaration:exit'(node) {
|
|
88
98
|
checkNode(node.declaration);
|
|
89
99
|
},
|
|
90
|
-
'ExportNamedDeclaration:not([source])'(node) {
|
|
100
|
+
'ExportNamedDeclaration:not([source]):exit'(node) {
|
|
91
101
|
if (node.declaration) {
|
|
92
102
|
checkNode(node.declaration);
|
|
93
103
|
}
|
|
@@ -97,19 +107,24 @@ exports.default = (0, util_1.createRule)({
|
|
|
97
107
|
}
|
|
98
108
|
}
|
|
99
109
|
},
|
|
100
|
-
TSExportAssignment(node) {
|
|
110
|
+
'TSExportAssignment:exit'(node) {
|
|
101
111
|
checkNode(node.expression);
|
|
102
112
|
},
|
|
103
|
-
'ArrowFunctionExpression, FunctionDeclaration, FunctionExpression'
|
|
104
|
-
|
|
105
|
-
|
|
113
|
+
'ArrowFunctionExpression, FunctionDeclaration, FunctionExpression': enterFunction,
|
|
114
|
+
'ArrowFunctionExpression:exit': exitFunction,
|
|
115
|
+
'FunctionDeclaration:exit': exitFunction,
|
|
116
|
+
'FunctionExpression:exit': exitFunction,
|
|
106
117
|
'Program:exit'() {
|
|
107
|
-
for (const
|
|
108
|
-
if (isExportedHigherOrderFunction(
|
|
109
|
-
checkNode(
|
|
118
|
+
for (const [node, returns] of functionReturnsMap) {
|
|
119
|
+
if (isExportedHigherOrderFunction({ node, returns })) {
|
|
120
|
+
checkNode(node);
|
|
110
121
|
}
|
|
111
122
|
}
|
|
112
123
|
},
|
|
124
|
+
ReturnStatement(node) {
|
|
125
|
+
const current = functionStack[functionStack.length - 1];
|
|
126
|
+
functionReturnsMap.get(current)?.push(node);
|
|
127
|
+
},
|
|
113
128
|
};
|
|
114
129
|
function checkParameters(node) {
|
|
115
130
|
function checkParameter(param) {
|
|
@@ -206,7 +221,7 @@ exports.default = (0, util_1.createRule)({
|
|
|
206
221
|
}
|
|
207
222
|
return false;
|
|
208
223
|
}
|
|
209
|
-
function isExportedHigherOrderFunction(node) {
|
|
224
|
+
function isExportedHigherOrderFunction({ node, }) {
|
|
210
225
|
let current = node.parent;
|
|
211
226
|
while (current) {
|
|
212
227
|
if (current.type === utils_1.AST_NODE_TYPES.ReturnStatement) {
|
|
@@ -214,8 +229,11 @@ exports.default = (0, util_1.createRule)({
|
|
|
214
229
|
current = current.parent.parent;
|
|
215
230
|
continue;
|
|
216
231
|
}
|
|
217
|
-
if (!(0, util_1.isFunction)(current)
|
|
218
|
-
|
|
232
|
+
if (!(0, util_1.isFunction)(current)) {
|
|
233
|
+
return false;
|
|
234
|
+
}
|
|
235
|
+
const returns = getReturnsInFunction(current);
|
|
236
|
+
if (!(0, explicitReturnTypeUtils_1.doesImmediatelyReturnFunctionExpression)({ node: current, returns })) {
|
|
219
237
|
return false;
|
|
220
238
|
}
|
|
221
239
|
if (checkedFunctions.has(current)) {
|
|
@@ -261,8 +279,10 @@ exports.default = (0, util_1.createRule)({
|
|
|
261
279
|
alreadyVisited.add(node);
|
|
262
280
|
switch (node.type) {
|
|
263
281
|
case utils_1.AST_NODE_TYPES.ArrowFunctionExpression:
|
|
264
|
-
case utils_1.AST_NODE_TYPES.FunctionExpression:
|
|
265
|
-
|
|
282
|
+
case utils_1.AST_NODE_TYPES.FunctionExpression: {
|
|
283
|
+
const returns = getReturnsInFunction(node);
|
|
284
|
+
return checkFunctionExpression({ node, returns });
|
|
285
|
+
}
|
|
266
286
|
case utils_1.AST_NODE_TYPES.ArrayExpression:
|
|
267
287
|
for (const element of node.elements) {
|
|
268
288
|
checkNode(element);
|
|
@@ -280,8 +300,10 @@ exports.default = (0, util_1.createRule)({
|
|
|
280
300
|
checkNode(element);
|
|
281
301
|
}
|
|
282
302
|
return;
|
|
283
|
-
case utils_1.AST_NODE_TYPES.FunctionDeclaration:
|
|
284
|
-
|
|
303
|
+
case utils_1.AST_NODE_TYPES.FunctionDeclaration: {
|
|
304
|
+
const returns = getReturnsInFunction(node);
|
|
305
|
+
return checkFunction({ node, returns });
|
|
306
|
+
}
|
|
285
307
|
case utils_1.AST_NODE_TYPES.MethodDefinition:
|
|
286
308
|
case utils_1.AST_NODE_TYPES.TSAbstractMethodDefinition:
|
|
287
309
|
if (node.accessibility === 'private' ||
|
|
@@ -323,7 +345,7 @@ exports.default = (0, util_1.createRule)({
|
|
|
323
345
|
}
|
|
324
346
|
checkParameters(node);
|
|
325
347
|
}
|
|
326
|
-
function checkFunctionExpression(node) {
|
|
348
|
+
function checkFunctionExpression({ node, returns, }) {
|
|
327
349
|
if (checkedFunctions.has(node)) {
|
|
328
350
|
return;
|
|
329
351
|
}
|
|
@@ -333,7 +355,7 @@ exports.default = (0, util_1.createRule)({
|
|
|
333
355
|
(0, explicitReturnTypeUtils_1.ancestorHasReturnType)(node)) {
|
|
334
356
|
return;
|
|
335
357
|
}
|
|
336
|
-
(0, explicitReturnTypeUtils_1.checkFunctionExpressionReturnType)(node, options, context.sourceCode, loc => {
|
|
358
|
+
(0, explicitReturnTypeUtils_1.checkFunctionExpressionReturnType)({ node, returns }, options, context.sourceCode, loc => {
|
|
337
359
|
context.report({
|
|
338
360
|
node,
|
|
339
361
|
loc,
|
|
@@ -342,7 +364,7 @@ exports.default = (0, util_1.createRule)({
|
|
|
342
364
|
});
|
|
343
365
|
checkParameters(node);
|
|
344
366
|
}
|
|
345
|
-
function checkFunction(node) {
|
|
367
|
+
function checkFunction({ node, returns, }) {
|
|
346
368
|
if (checkedFunctions.has(node)) {
|
|
347
369
|
return;
|
|
348
370
|
}
|
|
@@ -350,7 +372,7 @@ exports.default = (0, util_1.createRule)({
|
|
|
350
372
|
if (isAllowedName(node) || (0, explicitReturnTypeUtils_1.ancestorHasReturnType)(node)) {
|
|
351
373
|
return;
|
|
352
374
|
}
|
|
353
|
-
(0, explicitReturnTypeUtils_1.checkFunctionReturnType)(node, options, context.sourceCode, loc => {
|
|
375
|
+
(0, explicitReturnTypeUtils_1.checkFunctionReturnType)({ node, returns }, options, context.sourceCode, loc => {
|
|
354
376
|
context.report({
|
|
355
377
|
node,
|
|
356
378
|
loc,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"explicit-module-boundary-types.js","sourceRoot":"","sources":["../../src/rules/explicit-module-boundary-types.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"explicit-module-boundary-types.js","sourceRoot":"","sources":["../../src/rules/explicit-module-boundary-types.ts"],"names":[],"mappings":";;AAAA,oEAAkE;AAElE,oDAA0D;AAE1D,kCAAiD;AAMjD,6EAMyC;AAkBzC,kBAAe,IAAA,iBAAU,EAAsB;IAC7C,IAAI,EAAE,gCAAgC;IACtC,IAAI,EAAE;QACJ,IAAI,EAAE,SAAS;QACf,IAAI,EAAE;YACJ,WAAW,EACT,qGAAqG;SACxG;QACD,QAAQ,EAAE;YACR,iBAAiB,EAAE,kCAAkC;YACrD,cAAc,EAAE,sCAAsC;YACtD,qBAAqB,EAAE,oCAAoC;YAC3D,WAAW,EAAE,0DAA0D;YACvE,kBAAkB,EAChB,wDAAwD;SAC3D;QACD,MAAM,EAAE;YACN;gBACE,IAAI,EAAE,QAAQ;gBACd,UAAU,EAAE;oBACV,kCAAkC,EAAE;wBAClC,WAAW,EACT,iEAAiE;wBACnE,IAAI,EAAE,SAAS;qBAChB;oBACD,yCAAyC,EAAE;wBACzC,WAAW,EAAE;4BACX,kHAAkH;4BAClH,qDAAqD;yBACtD,CAAC,IAAI,CAAC,IAAI,CAAC;wBACZ,IAAI,EAAE,SAAS;qBAChB;oBACD,YAAY,EAAE;wBACZ,WAAW,EACT,gGAAgG;wBAClG,KAAK,EAAE;4BACL,IAAI,EAAE,QAAQ;yBACf;wBACD,IAAI,EAAE,OAAO;qBACd;oBACD,yBAAyB,EAAE;wBACzB,WAAW,EAAE;4BACX,2GAA2G;4BAC3G,qDAAqD;yBACtD,CAAC,IAAI,CAAC,IAAI,CAAC;wBACZ,IAAI,EAAE,SAAS;qBAChB;oBACD,6BAA6B,EAAE;wBAC7B,WAAW,EACT,8EAA8E;wBAChF,IAAI,EAAE,SAAS;qBAChB;iBACF;gBACD,oBAAoB,EAAE,KAAK;aAC5B;SACF;KACF;IACD,cAAc,EAAE;QACd;YACE,kCAAkC,EAAE,KAAK;YACzC,yCAAyC,EAAE,IAAI;YAC/C,YAAY,EAAE,EAAE;YAChB,yBAAyB,EAAE,IAAI;YAC/B,6BAA6B,EAAE,IAAI;SACpC;KACF;IACD,MAAM,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC;QACvB,oDAAoD;QACpD,MAAM,gBAAgB,GAAG,IAAI,GAAG,EAAgB,CAAC;QAEjD,MAAM,aAAa,GAAmB,EAAE,CAAC;QACzC,MAAM,kBAAkB,GAAG,IAAI,GAAG,EAG/B,CAAC;QAEJ,qEAAqE;QACrE,6CAA6C;QAC7C,MAAM,cAAc,GAAG,IAAI,GAAG,EAAiB,CAAC;QAEhD,SAAS,oBAAoB,CAC3B,IAAkB;YAElB,OAAO,kBAAkB,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;QAC5C,CAAC;QAED,SAAS,aAAa,CAAC,IAAkB;YACvC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACzB,kBAAkB,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QACnC,CAAC;QAED,SAAS,YAAY;YACnB,aAAa,CAAC,GAAG,EAAE,CAAC;QACtB,CAAC;QAED;;;;;;;;;UASE;QAEF,OAAO;YACL,+BAA+B,CAAC,IAAI;gBAClC,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YAC9B,CAAC;YACD,2CAA2C,CACzC,IAAqC;gBAErC,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;oBACrB,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;gBAC9B,CAAC;qBAAM,CAAC;oBACN,KAAK,MAAM,SAAS,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;wBACxC,eAAe,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;oBACnC,CAAC;gBACH,CAAC;YACH,CAAC;YACD,yBAAyB,CAAC,IAAI;gBAC5B,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAC7B,CAAC;YACD,kEAAkE,EAChE,aAAa;YACf,8BAA8B,EAAE,YAAY;YAC5C,0BAA0B,EAAE,YAAY;YACxC,yBAAyB,EAAE,YAAY;YACvC,cAAc;gBACZ,KAAK,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,kBAAkB,EAAE,CAAC;oBACjD,IAAI,6BAA6B,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;wBACrD,SAAS,CAAC,IAAI,CAAC,CAAC;oBAClB,CAAC;gBACH,CAAC;YACH,CAAC;YACD,eAAe,CAAC,IAAI;gBAClB,MAAM,OAAO,GAAG,aAAa,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;gBACxD,kBAAkB,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;YAC9C,CAAC;SACF,CAAC;QAEF,SAAS,eAAe,CACtB,IAA2D;YAE3D,SAAS,cAAc,CAAC,KAAyB;gBAC/C,SAAS,MAAM,CACb,cAA0B,EAC1B,gBAA4B;oBAE5B,IAAI,KAAK,CAAC,IAAI,KAAK,sBAAc,CAAC,UAAU,EAAE,CAAC;wBAC7C,OAAO,CAAC,MAAM,CAAC;4BACb,IAAI,EAAE,KAAK;4BACX,SAAS,EAAE,cAAc;4BACzB,IAAI,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE;yBAC3B,CAAC,CAAC;oBACL,CAAC;yBAAM,IAAI,KAAK,CAAC,IAAI,KAAK,sBAAc,CAAC,YAAY,EAAE,CAAC;wBACtD,OAAO,CAAC,MAAM,CAAC;4BACb,IAAI,EAAE,KAAK;4BACX,SAAS,EAAE,gBAAgB;4BAC3B,IAAI,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE;yBAChC,CAAC,CAAC;oBACL,CAAC;yBAAM,IAAI,KAAK,CAAC,IAAI,KAAK,sBAAc,CAAC,aAAa,EAAE,CAAC;wBACvD,OAAO,CAAC,MAAM,CAAC;4BACb,IAAI,EAAE,KAAK;4BACX,SAAS,EAAE,gBAAgB;4BAC3B,IAAI,EAAE,EAAE,IAAI,EAAE,gBAAgB,EAAE;yBACjC,CAAC,CAAC;oBACL,CAAC;yBAAM,IAAI,KAAK,CAAC,IAAI,KAAK,sBAAc,CAAC,WAAW,EAAE,CAAC;wBACrD,IAAI,KAAK,CAAC,QAAQ,CAAC,IAAI,KAAK,sBAAc,CAAC,UAAU,EAAE,CAAC;4BACtD,OAAO,CAAC,MAAM,CAAC;gCACb,IAAI,EAAE,KAAK;gCACX,SAAS,EAAE,cAAc;gCACzB,IAAI,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,QAAQ,CAAC,IAAI,EAAE;6BACpC,CAAC,CAAC;wBACL,CAAC;6BAAM,CAAC;4BACN,OAAO,CAAC,MAAM,CAAC;gCACb,IAAI,EAAE,KAAK;gCACX,SAAS,EAAE,gBAAgB;gCAC3B,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE;6BACvB,CAAC,CAAC;wBACL,CAAC;oBACH,CAAC;gBACH,CAAC;gBAED,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;oBACnB,KAAK,sBAAc,CAAC,YAAY,CAAC;oBACjC,KAAK,sBAAc,CAAC,UAAU,CAAC;oBAC/B,KAAK,sBAAc,CAAC,aAAa,CAAC;oBAClC,KAAK,sBAAc,CAAC,WAAW;wBAC7B,IAAI,CAAC,KAAK,CAAC,cAAc,EAAE,CAAC;4BAC1B,MAAM,CAAC,gBAAgB,EAAE,uBAAuB,CAAC,CAAC;wBACpD,CAAC;6BAAM,IACL,OAAO,CAAC,kCAAkC,KAAK,IAAI;4BACnD,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC,IAAI;gCACtC,sBAAc,CAAC,YAAY,EAC7B,CAAC;4BACD,MAAM,CAAC,aAAa,EAAE,oBAAoB,CAAC,CAAC;wBAC9C,CAAC;wBACD,OAAO;oBAET,KAAK,sBAAc,CAAC,mBAAmB;wBACrC,OAAO,cAAc,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;oBAEzC,KAAK,sBAAc,CAAC,iBAAiB,EAAE,8CAA8C;wBACnF,OAAO;gBACX,CAAC;YACH,CAAC;YAED,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;gBAC9B,cAAc,CAAC,GAAG,CAAC,CAAC;YACtB,CAAC;QACH,CAAC;QAED;;WAEG;QACH,SAAS,aAAa,CAAC,IAA+B;YACpD,IAAI,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,YAAY,IAAI,OAAO,CAAC,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACxE,OAAO,KAAK,CAAC;YACf,CAAC;YAED,IACE,IAAI,CAAC,IAAI,KAAK,sBAAc,CAAC,kBAAkB;gBAC/C,IAAI,CAAC,IAAI,KAAK,sBAAc,CAAC,mBAAmB,EAChD,CAAC;gBACD,OAAO,CACL,IAAI,CAAC,EAAE,EAAE,IAAI,KAAK,sBAAc,CAAC,UAAU;oBAC3C,OAAO,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,CAC5C,CAAC;YACJ,CAAC;iBAAM,IACL,IAAI,CAAC,IAAI,KAAK,sBAAc,CAAC,gBAAgB;gBAC7C,IAAI,CAAC,IAAI,KAAK,sBAAc,CAAC,0BAA0B;gBACvD,CAAC,IAAI,CAAC,IAAI,KAAK,sBAAc,CAAC,QAAQ,IAAI,IAAI,CAAC,MAAM,CAAC;gBACtD,IAAI,CAAC,IAAI,KAAK,sBAAc,CAAC,kBAAkB,EAC/C,CAAC;gBACD,IACE,IAAI,CAAC,GAAG,CAAC,IAAI,KAAK,sBAAc,CAAC,OAAO;oBACxC,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,KAAK,QAAQ,EAClC,CAAC;oBACD,OAAO,OAAO,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;gBACvD,CAAC;gBACD,IACE,IAAI,CAAC,GAAG,CAAC,IAAI,KAAK,sBAAc,CAAC,eAAe;oBAChD,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,MAAM,KAAK,CAAC,EACjC,CAAC;oBACD,OAAO,OAAO,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBACrE,CAAC;gBACD,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,KAAK,sBAAc,CAAC,UAAU,EAAE,CAAC;oBAClE,OAAO,OAAO,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gBACtD,CAAC;YACH,CAAC;YAED,OAAO,KAAK,CAAC;QACf,CAAC;QAED,SAAS,6BAA6B,CAAC,EACrC,IAAI,GACuB;YAC3B,IAAI,OAAO,GAA8B,IAAI,CAAC,MAAM,CAAC;YACrD,OAAO,OAAO,EAAE,CAAC;gBACf,IAAI,OAAO,CAAC,IAAI,KAAK,sBAAc,CAAC,eAAe,EAAE,CAAC;oBACpD,kFAAkF;oBAClF,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC;oBAChC,SAAS;gBACX,CAAC;gBAED,IAAI,CAAC,IAAA,iBAAU,EAAC,OAAO,CAAC,EAAE,CAAC;oBACzB,OAAO,KAAK,CAAC;gBACf,CAAC;gBACD,MAAM,OAAO,GAAG,oBAAoB,CAAC,OAAO,CAAC,CAAC;gBAC9C,IACE,CAAC,IAAA,iEAAuC,EAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EACpE,CAAC;oBACD,OAAO,KAAK,CAAC;gBACf,CAAC;gBAED,IAAI,gBAAgB,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;oBAClC,OAAO,IAAI,CAAC;gBACd,CAAC;gBAED,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC;YAC3B,CAAC;YAED,OAAO,KAAK,CAAC;QACf,CAAC;QAED,SAAS,eAAe,CAAC,IAAyB;YAChD,MAAM,KAAK,GAAG,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;YAChD,MAAM,QAAQ,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC1C,wBAAwB,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACvC,OAAO;YACT,CAAC;YAED,+BAA+B;YAC/B,KAAK,MAAM,UAAU,IAAI,QAAQ,CAAC,IAAI,EAAE,CAAC;gBACvC,yCAAyC;gBACzC,IACE;oBACE,8BAAc,CAAC,sBAAsB;oBACrC,8BAAc,CAAC,aAAa;oBAC5B,8BAAc,CAAC,WAAW;oBAC1B,8BAAc,CAAC,SAAS;iBACzB,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,EAC3B,CAAC;oBACD,SAAS;gBACX,CAAC;gBAED,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;YAC7B,CAAC;YAED,mDAAmD;YACnD,KAAK,MAAM,SAAS,IAAI,QAAQ,CAAC,UAAU,EAAE,CAAC;gBAC5C;gBACE,6FAA6F;gBAC7F,CAAC,SAAS,CAAC,IAAI;oBACf,SAAS,CAAC,SAAS,EACnB,CAAC;oBACD,SAAS,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;gBACjC,CAAC;YACH,CAAC;QACH,CAAC;QAED,SAAS,SAAS,CAAC,IAA0B;YAC3C,IAAI,IAAI,IAAI,IAAI,IAAI,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC7C,OAAO;YACT,CAAC;YACD,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAEzB,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;gBAClB,KAAK,sBAAc,CAAC,uBAAuB,CAAC;gBAC5C,KAAK,sBAAc,CAAC,kBAAkB,CAAC,CAAC,CAAC;oBACvC,MAAM,OAAO,GAAG,oBAAoB,CAAC,IAAI,CAAC,CAAC;oBAC3C,OAAO,uBAAuB,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;gBACpD,CAAC;gBAED,KAAK,sBAAc,CAAC,eAAe;oBACjC,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;wBACpC,SAAS,CAAC,OAAO,CAAC,CAAC;oBACrB,CAAC;oBACD,OAAO;gBAET,KAAK,sBAAc,CAAC,kBAAkB;oBACpC,IACE,IAAI,CAAC,aAAa,KAAK,SAAS;wBAChC,IAAI,CAAC,GAAG,CAAC,IAAI,KAAK,sBAAc,CAAC,iBAAiB,EAClD,CAAC;wBACD,OAAO;oBACT,CAAC;oBACD,OAAO,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBAE/B,KAAK,sBAAc,CAAC,gBAAgB,CAAC;gBACrC,KAAK,sBAAc,CAAC,eAAe;oBACjC,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;wBACrC,SAAS,CAAC,OAAO,CAAC,CAAC;oBACrB,CAAC;oBACD,OAAO;gBAET,KAAK,sBAAc,CAAC,mBAAmB,CAAC,CAAC,CAAC;oBACxC,MAAM,OAAO,GAAG,oBAAoB,CAAC,IAAI,CAAC,CAAC;oBAC3C,OAAO,aAAa,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;gBAC1C,CAAC;gBAED,KAAK,sBAAc,CAAC,gBAAgB,CAAC;gBACrC,KAAK,sBAAc,CAAC,0BAA0B;oBAC5C,IACE,IAAI,CAAC,aAAa,KAAK,SAAS;wBAChC,IAAI,CAAC,GAAG,CAAC,IAAI,KAAK,sBAAc,CAAC,iBAAiB,EAClD,CAAC;wBACD,OAAO;oBACT,CAAC;oBACD,OAAO,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBAE/B,KAAK,sBAAc,CAAC,UAAU;oBAC5B,OAAO,eAAe,CAAC,IAAI,CAAC,CAAC;gBAE/B,KAAK,sBAAc,CAAC,gBAAgB;oBAClC,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;wBACvC,SAAS,CAAC,QAAQ,CAAC,CAAC;oBACtB,CAAC;oBACD,OAAO;gBAET,KAAK,sBAAc,CAAC,QAAQ;oBAC1B,OAAO,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBAE/B,KAAK,sBAAc,CAAC,6BAA6B;oBAC/C,OAAO,gCAAgC,CAAC,IAAI,CAAC,CAAC;gBAEhD,KAAK,sBAAc,CAAC,mBAAmB;oBACrC,KAAK,MAAM,WAAW,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;wBAC5C,SAAS,CAAC,WAAW,CAAC,CAAC;oBACzB,CAAC;oBACD,OAAO;gBAET,KAAK,sBAAc,CAAC,kBAAkB;oBACpC,OAAO,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAChC,CAAC;QACH,CAAC;QAED,SAAS,gCAAgC,CACvC,IAA4C;YAE5C,MAAM,aAAa,GACjB,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,sBAAc,CAAC,gBAAgB;gBACpD,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,aAAa,CAAC;YACrC,MAAM,aAAa,GACjB,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,sBAAc,CAAC,0BAA0B;gBAC7D,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,sBAAc,CAAC,gBAAgB,CAAC;gBACvD,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,KAAK,CAAC;YAC7B,IAAI,CAAC,aAAa,IAAI,CAAC,aAAa,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;gBACzD,OAAO,CAAC,MAAM,CAAC;oBACb,IAAI;oBACJ,SAAS,EAAE,mBAAmB;iBAC/B,CAAC,CAAC;YACL,CAAC;YAED,eAAe,CAAC,IAAI,CAAC,CAAC;QACxB,CAAC;QAED,SAAS,uBAAuB,CAAC,EAC/B,IAAI,EACJ,OAAO,GAC0B;YACjC,IAAI,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC/B,OAAO;YACT,CAAC;YACD,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAE3B,IACE,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC;gBAC1B,IAAA,mDAAyB,EAAC,IAAI,EAAE,OAAO,CAAC;gBACxC,IAAA,+CAAqB,EAAC,IAAI,CAAC,EAC3B,CAAC;gBACD,OAAO;YACT,CAAC;YAED,IAAA,2DAAiC,EAC/B,EAAE,IAAI,EAAE,OAAO,EAAE,EACjB,OAAO,EACP,OAAO,CAAC,UAAU,EAClB,GAAG,CAAC,EAAE;gBACJ,OAAO,CAAC,MAAM,CAAC;oBACb,IAAI;oBACJ,GAAG;oBACH,SAAS,EAAE,mBAAmB;iBAC/B,CAAC,CAAC;YACL,CAAC,CACF,CAAC;YAEF,eAAe,CAAC,IAAI,CAAC,CAAC;QACxB,CAAC;QAED,SAAS,aAAa,CAAC,EACrB,IAAI,EACJ,OAAO,GACoC;YAC3C,IAAI,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC/B,OAAO;YACT,CAAC;YACD,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAE3B,IAAI,aAAa,CAAC,IAAI,CAAC,IAAI,IAAA,+CAAqB,EAAC,IAAI,CAAC,EAAE,CAAC;gBACvD,OAAO;YACT,CAAC;YAED,IAAA,iDAAuB,EACrB,EAAE,IAAI,EAAE,OAAO,EAAE,EACjB,OAAO,EACP,OAAO,CAAC,UAAU,EAClB,GAAG,CAAC,EAAE;gBACJ,OAAO,CAAC,MAAM,CAAC;oBACb,IAAI;oBACJ,GAAG;oBACH,SAAS,EAAE,mBAAmB;iBAC/B,CAAC,CAAC;YACL,CAAC,CACF,CAAC;YAEF,eAAe,CAAC,IAAI,CAAC,CAAC;QACxB,CAAC;IACH,CAAC;CACF,CAAC,CAAC"}
|
|
@@ -62,33 +62,6 @@ exports.default = (0, util_1.createRule)({
|
|
|
62
62
|
const services = (0, util_1.getParserServices)(context);
|
|
63
63
|
const checker = services.program.getTypeChecker();
|
|
64
64
|
const compilerOptions = services.program.getCompilerOptions();
|
|
65
|
-
/**
|
|
66
|
-
* Sometimes tuple types don't have ObjectFlags.Tuple set, like when they're being matched against an inferred type.
|
|
67
|
-
* So, in addition, check if there are integer properties 0..n and no other numeric keys
|
|
68
|
-
*/
|
|
69
|
-
function couldBeTupleType(type) {
|
|
70
|
-
const properties = type.getProperties();
|
|
71
|
-
if (properties.length === 0) {
|
|
72
|
-
return false;
|
|
73
|
-
}
|
|
74
|
-
let i = 0;
|
|
75
|
-
for (; i < properties.length; ++i) {
|
|
76
|
-
const name = properties[i].name;
|
|
77
|
-
if (String(i) !== name) {
|
|
78
|
-
if (i === 0) {
|
|
79
|
-
// if there are no integer properties, this is not a tuple
|
|
80
|
-
return false;
|
|
81
|
-
}
|
|
82
|
-
break;
|
|
83
|
-
}
|
|
84
|
-
}
|
|
85
|
-
for (; i < properties.length; ++i) {
|
|
86
|
-
if (String(+properties[i].name) === properties[i].name) {
|
|
87
|
-
return false; // if there are any other numeric properties, this is not a tuple
|
|
88
|
-
}
|
|
89
|
-
}
|
|
90
|
-
return true;
|
|
91
|
-
}
|
|
92
65
|
/**
|
|
93
66
|
* Returns true if there's a chance the variable has been used before a value has been assigned to it
|
|
94
67
|
*/
|
|
@@ -127,6 +100,10 @@ exports.default = (0, util_1.createRule)({
|
|
|
127
100
|
node.typeName.type === utils_1.AST_NODE_TYPES.Identifier &&
|
|
128
101
|
node.typeName.name === 'const');
|
|
129
102
|
}
|
|
103
|
+
function isConstVariableDeclaration(node) {
|
|
104
|
+
return (node.type === utils_1.AST_NODE_TYPES.VariableDeclaration &&
|
|
105
|
+
node.kind === 'const');
|
|
106
|
+
}
|
|
130
107
|
return {
|
|
131
108
|
TSNonNullExpression(node) {
|
|
132
109
|
if (node.parent.type === utils_1.AST_NODE_TYPES.AssignmentExpression &&
|
|
@@ -199,21 +176,17 @@ exports.default = (0, util_1.createRule)({
|
|
|
199
176
|
}
|
|
200
177
|
},
|
|
201
178
|
'TSAsExpression, TSTypeAssertion'(node) {
|
|
202
|
-
if (options.typesToIgnore?.includes(context.sourceCode.getText(node.typeAnnotation))
|
|
203
|
-
isConstAssertion(node.typeAnnotation)) {
|
|
179
|
+
if (options.typesToIgnore?.includes(context.sourceCode.getText(node.typeAnnotation))) {
|
|
204
180
|
return;
|
|
205
181
|
}
|
|
206
182
|
const castType = services.getTypeAtLocation(node);
|
|
207
|
-
if ((0, util_1.isTypeFlagSet)(castType, ts.TypeFlags.Literal) ||
|
|
208
|
-
(tsutils.isObjectType(castType) &&
|
|
209
|
-
(tsutils.isObjectFlagSet(castType, ts.ObjectFlags.Tuple) ||
|
|
210
|
-
couldBeTupleType(castType)))) {
|
|
211
|
-
// It's not always safe to remove a cast to a literal type or tuple
|
|
212
|
-
// type, as those types are sometimes widened without the cast.
|
|
213
|
-
return;
|
|
214
|
-
}
|
|
215
183
|
const uncastType = services.getTypeAtLocation(node.expression);
|
|
216
|
-
|
|
184
|
+
const typeIsUnchanged = uncastType === castType;
|
|
185
|
+
const wouldSameTypeBeInferred = castType.isLiteral()
|
|
186
|
+
? // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
187
|
+
isConstVariableDeclaration(node.parent.parent)
|
|
188
|
+
: !isConstAssertion(node.typeAnnotation);
|
|
189
|
+
if (typeIsUnchanged && wouldSameTypeBeInferred) {
|
|
217
190
|
context.report({
|
|
218
191
|
node,
|
|
219
192
|
messageId: 'unnecessaryAssertion',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"no-unnecessary-type-assertion.js","sourceRoot":"","sources":["../../src/rules/no-unnecessary-type-assertion.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AACA,oDAA2E;AAC3E,sDAAwC;AACxC,+CAAiC;AAEjC,kCAUiB;AASjB,kBAAe,IAAA,iBAAU,EAAsB;IAC7C,IAAI,EAAE,+BAA+B;IACrC,IAAI,EAAE;QACJ,IAAI,EAAE;YACJ,WAAW,EACT,uEAAuE;YACzE,WAAW,EAAE,aAAa;YAC1B,oBAAoB,EAAE,IAAI;SAC3B;QACD,OAAO,EAAE,MAAM;QACf,QAAQ,EAAE;YACR,oBAAoB,EAClB,oFAAoF;YACtF,uBAAuB,EACrB,+FAA+F;SAClG;QACD,MAAM,EAAE;YACN;gBACE,IAAI,EAAE,QAAQ;gBACd,oBAAoB,EAAE,KAAK;gBAC3B,UAAU,EAAE;oBACV,aAAa,EAAE;wBACb,WAAW,EAAE,iCAAiC;wBAC9C,IAAI,EAAE,OAAO;wBACb,KAAK,EAAE;4BACL,IAAI,EAAE,QAAQ;yBACf;qBACF;iBACF;aACF;SACF;QACD,IAAI,EAAE,YAAY;KACnB;IACD,cAAc,EAAE,CAAC,EAAE,CAAC;IACpB,MAAM,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC;QACvB,MAAM,QAAQ,GAAG,IAAA,wBAAiB,EAAC,OAAO,CAAC,CAAC;QAC5C,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC,cAAc,EAAE,CAAC;QAClD,MAAM,eAAe,GAAG,QAAQ,CAAC,OAAO,CAAC,kBAAkB,EAAE,CAAC;QAE9D
|
|
1
|
+
{"version":3,"file":"no-unnecessary-type-assertion.js","sourceRoot":"","sources":["../../src/rules/no-unnecessary-type-assertion.ts"],"names":[],"mappings":"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"}
|
|
@@ -72,44 +72,6 @@ exports.default = (0, util_1.createRule)({
|
|
|
72
72
|
function contains(outer, inner) {
|
|
73
73
|
return (outer.range[0] <= inner.range[0] && outer.range[1] >= inner.range[1]);
|
|
74
74
|
}
|
|
75
|
-
function isAssignee(node) {
|
|
76
|
-
const parent = node.parent;
|
|
77
|
-
if (!parent) {
|
|
78
|
-
return false;
|
|
79
|
-
}
|
|
80
|
-
// a[i] = 1, a[i] += 1, etc.
|
|
81
|
-
if (parent.type === utils_1.AST_NODE_TYPES.AssignmentExpression &&
|
|
82
|
-
parent.left === node) {
|
|
83
|
-
return true;
|
|
84
|
-
}
|
|
85
|
-
// delete a[i]
|
|
86
|
-
if (parent.type === utils_1.AST_NODE_TYPES.UnaryExpression &&
|
|
87
|
-
parent.operator === 'delete' &&
|
|
88
|
-
parent.argument === node) {
|
|
89
|
-
return true;
|
|
90
|
-
}
|
|
91
|
-
// a[i]++, --a[i], etc.
|
|
92
|
-
if (parent.type === utils_1.AST_NODE_TYPES.UpdateExpression &&
|
|
93
|
-
parent.argument === node) {
|
|
94
|
-
return true;
|
|
95
|
-
}
|
|
96
|
-
// [a[i]] = [0]
|
|
97
|
-
if (parent.type === utils_1.AST_NODE_TYPES.ArrayPattern) {
|
|
98
|
-
return true;
|
|
99
|
-
}
|
|
100
|
-
// [...a[i]] = [0]
|
|
101
|
-
if (parent.type === utils_1.AST_NODE_TYPES.RestElement) {
|
|
102
|
-
return true;
|
|
103
|
-
}
|
|
104
|
-
// ({ foo: a[i] }) = { foo: 0 }
|
|
105
|
-
if (parent.type === utils_1.AST_NODE_TYPES.Property &&
|
|
106
|
-
parent.value === node &&
|
|
107
|
-
parent.parent.type === utils_1.AST_NODE_TYPES.ObjectExpression &&
|
|
108
|
-
isAssignee(parent.parent)) {
|
|
109
|
-
return true;
|
|
110
|
-
}
|
|
111
|
-
return false;
|
|
112
|
-
}
|
|
113
75
|
function isIndexOnlyUsedWithArray(body, indexVar, arrayExpression) {
|
|
114
76
|
const arrayText = context.sourceCode.getText(arrayExpression);
|
|
115
77
|
return indexVar.references.every(reference => {
|
|
@@ -120,7 +82,7 @@ exports.default = (0, util_1.createRule)({
|
|
|
120
82
|
node.object.type !== utils_1.AST_NODE_TYPES.ThisExpression &&
|
|
121
83
|
node.property === id &&
|
|
122
84
|
context.sourceCode.getText(node.object) === arrayText &&
|
|
123
|
-
!isAssignee(node)));
|
|
85
|
+
!(0, util_1.isAssignee)(node)));
|
|
124
86
|
});
|
|
125
87
|
}
|
|
126
88
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prefer-for-of.js","sourceRoot":"","sources":["../../src/rules/prefer-for-of.ts"],"names":[],"mappings":";;AACA,oDAA0D;AAE1D,
|
|
1
|
+
{"version":3,"file":"prefer-for-of.js","sourceRoot":"","sources":["../../src/rules/prefer-for-of.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,30 @@
|
|
|
1
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
|
+
};
|
|
2
25
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
26
|
const utils_1 = require("@typescript-eslint/utils");
|
|
27
|
+
const tsutils = __importStar(require("ts-api-utils"));
|
|
4
28
|
const util_1 = require("../util");
|
|
5
29
|
const getMemberExpressionName = (member) => {
|
|
6
30
|
if (!member.computed) {
|
|
@@ -31,6 +55,13 @@ exports.default = (0, util_1.createRule)({
|
|
|
31
55
|
create(context) {
|
|
32
56
|
const services = (0, util_1.getParserServices)(context);
|
|
33
57
|
const checker = services.program.getTypeChecker();
|
|
58
|
+
function isArrayType(type) {
|
|
59
|
+
return tsutils
|
|
60
|
+
.unionTypeParts(type)
|
|
61
|
+
.every(unionPart => tsutils
|
|
62
|
+
.intersectionTypeParts(unionPart)
|
|
63
|
+
.every(t => checker.isArrayType(t) || checker.isTupleType(t)));
|
|
64
|
+
}
|
|
34
65
|
return {
|
|
35
66
|
'CallExpression > MemberExpression.callee'(callee) {
|
|
36
67
|
if (getMemberExpressionName(callee) !== 'reduce') {
|
|
@@ -43,7 +74,7 @@ exports.default = (0, util_1.createRule)({
|
|
|
43
74
|
// Get the symbol of the `reduce` method.
|
|
44
75
|
const calleeObjType = (0, util_1.getConstrainedTypeAtLocation)(services, callee.object);
|
|
45
76
|
// Check the owner type of the `reduce` method.
|
|
46
|
-
if (
|
|
77
|
+
if (isArrayType(calleeObjType)) {
|
|
47
78
|
context.report({
|
|
48
79
|
messageId: 'preferTypeParameter',
|
|
49
80
|
node: secondArg,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prefer-reduce-type-parameter.js","sourceRoot":"","sources":["../../src/rules/prefer-reduce-type-parameter.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"prefer-reduce-type-parameter.js","sourceRoot":"","sources":["../../src/rules/prefer-reduce-type-parameter.ts"],"names":[],"mappings":"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"}
|
|
@@ -93,20 +93,15 @@ function isPropertyOfObjectWithType(property) {
|
|
|
93
93
|
* function fn() { return function() { ... } }
|
|
94
94
|
* ```
|
|
95
95
|
*/
|
|
96
|
-
function doesImmediatelyReturnFunctionExpression({
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
// If so, check that returned argument as body
|
|
104
|
-
body = statement.argument;
|
|
105
|
-
}
|
|
96
|
+
function doesImmediatelyReturnFunctionExpression({ node, returns, }) {
|
|
97
|
+
if (node.type === utils_1.AST_NODE_TYPES.ArrowFunctionExpression &&
|
|
98
|
+
utils_1.ASTUtils.isFunction(node.body)) {
|
|
99
|
+
return true;
|
|
100
|
+
}
|
|
101
|
+
if (returns.length === 0) {
|
|
102
|
+
return false;
|
|
106
103
|
}
|
|
107
|
-
|
|
108
|
-
return (body.type === utils_1.AST_NODE_TYPES.ArrowFunctionExpression ||
|
|
109
|
-
body.type === utils_1.AST_NODE_TYPES.FunctionExpression);
|
|
104
|
+
return returns.every(node => node.argument && utils_1.ASTUtils.isFunction(node.argument));
|
|
110
105
|
}
|
|
111
106
|
exports.doesImmediatelyReturnFunctionExpression = doesImmediatelyReturnFunctionExpression;
|
|
112
107
|
/**
|
|
@@ -167,9 +162,9 @@ exports.isValidFunctionExpressionReturnType = isValidFunctionExpressionReturnTyp
|
|
|
167
162
|
/**
|
|
168
163
|
* Check that the function expression or declaration is valid.
|
|
169
164
|
*/
|
|
170
|
-
function isValidFunctionReturnType(node, options) {
|
|
165
|
+
function isValidFunctionReturnType({ node, returns }, options) {
|
|
171
166
|
if (options.allowHigherOrderFunctions &&
|
|
172
|
-
doesImmediatelyReturnFunctionExpression(node)) {
|
|
167
|
+
doesImmediatelyReturnFunctionExpression({ node, returns })) {
|
|
173
168
|
return true;
|
|
174
169
|
}
|
|
175
170
|
return (node.returnType != null ||
|
|
@@ -179,8 +174,8 @@ function isValidFunctionReturnType(node, options) {
|
|
|
179
174
|
/**
|
|
180
175
|
* Checks if a function declaration/expression has a return type.
|
|
181
176
|
*/
|
|
182
|
-
function checkFunctionReturnType(node, options, sourceCode, report) {
|
|
183
|
-
if (isValidFunctionReturnType(node, options)) {
|
|
177
|
+
function checkFunctionReturnType({ node, returns }, options, sourceCode, report) {
|
|
178
|
+
if (isValidFunctionReturnType({ node, returns }, options)) {
|
|
184
179
|
return;
|
|
185
180
|
}
|
|
186
181
|
report((0, getFunctionHeadLoc_1.getFunctionHeadLoc)(node, sourceCode));
|
|
@@ -189,11 +184,11 @@ exports.checkFunctionReturnType = checkFunctionReturnType;
|
|
|
189
184
|
/**
|
|
190
185
|
* Checks if a function declaration/expression has a return type.
|
|
191
186
|
*/
|
|
192
|
-
function checkFunctionExpressionReturnType(
|
|
193
|
-
if (isValidFunctionExpressionReturnType(node, options)) {
|
|
187
|
+
function checkFunctionExpressionReturnType(info, options, sourceCode, report) {
|
|
188
|
+
if (isValidFunctionExpressionReturnType(info.node, options)) {
|
|
194
189
|
return;
|
|
195
190
|
}
|
|
196
|
-
checkFunctionReturnType(
|
|
191
|
+
checkFunctionReturnType(info, options, sourceCode, report);
|
|
197
192
|
}
|
|
198
193
|
exports.checkFunctionExpressionReturnType = checkFunctionExpressionReturnType;
|
|
199
194
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"explicitReturnTypeUtils.js","sourceRoot":"","sources":["../../src/util/explicitReturnTypeUtils.ts"],"names":[],"mappings":";;;AACA,
|
|
1
|
+
{"version":3,"file":"explicitReturnTypeUtils.js","sourceRoot":"","sources":["../../src/util/explicitReturnTypeUtils.ts"],"names":[],"mappings":"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"}
|
package/dist/util/index.js
CHANGED
|
@@ -31,6 +31,7 @@ __exportStar(require("./isUndefinedIdentifier"), exports);
|
|
|
31
31
|
__exportStar(require("./misc"), exports);
|
|
32
32
|
__exportStar(require("./objectIterators"), exports);
|
|
33
33
|
__exportStar(require("./types"), exports);
|
|
34
|
+
__exportStar(require("./isAssignee"), exports);
|
|
34
35
|
// this is done for convenience - saves migrating all of the old rules
|
|
35
36
|
__exportStar(require("@typescript-eslint/type-utils"), exports);
|
|
36
37
|
const { applyDefault, deepMerge, isObjectNotArray, getParserServices, nullThrows, NullThrowsReasons, } = utils_1.ESLintUtils;
|
package/dist/util/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/util/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,oDAAuD;AAEvD,6CAA2B;AAC3B,2DAAyC;AACzC,+CAA6B;AAC7B,uDAAqC;AACrC,0DAAwC;AACxC,yDAAuC;AACvC,oDAAkC;AAClC,sDAAoC;AACpC,qDAAmC;AACnC,gDAA8B;AAC9B,kDAAgC;AAChC,0DAAwC;AACxC,yCAAuB;AACvB,oDAAkC;AAClC,0CAAwB;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/util/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,oDAAuD;AAEvD,6CAA2B;AAC3B,2DAAyC;AACzC,+CAA6B;AAC7B,uDAAqC;AACrC,0DAAwC;AACxC,yDAAuC;AACvC,oDAAkC;AAClC,sDAAoC;AACpC,qDAAmC;AACnC,gDAA8B;AAC9B,kDAAgC;AAChC,0DAAwC;AACxC,yCAAuB;AACvB,oDAAkC;AAClC,0CAAwB;AACxB,+CAA6B;AAE7B,sEAAsE;AACtE,gEAA8C;AAC9C,MAAM,EACJ,YAAY,EACZ,SAAS,EACT,gBAAgB,EAChB,iBAAiB,EACjB,UAAU,EACV,iBAAiB,GAClB,GAAG,mBAAW,CAAC;AAMd,oCAAY;AACZ,8BAAS;AACT,4CAAgB;AAChB,8CAAiB;AACjB,gCAAU;AAGV,8CAAiB"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.isAssignee = void 0;
|
|
4
|
+
const utils_1 = require("@typescript-eslint/utils");
|
|
5
|
+
function isAssignee(node) {
|
|
6
|
+
const parent = node.parent;
|
|
7
|
+
if (!parent) {
|
|
8
|
+
return false;
|
|
9
|
+
}
|
|
10
|
+
// a[i] = 1, a[i] += 1, etc.
|
|
11
|
+
if (parent.type === utils_1.AST_NODE_TYPES.AssignmentExpression &&
|
|
12
|
+
parent.left === node) {
|
|
13
|
+
return true;
|
|
14
|
+
}
|
|
15
|
+
// delete a[i]
|
|
16
|
+
if (parent.type === utils_1.AST_NODE_TYPES.UnaryExpression &&
|
|
17
|
+
parent.operator === 'delete' &&
|
|
18
|
+
parent.argument === node) {
|
|
19
|
+
return true;
|
|
20
|
+
}
|
|
21
|
+
// a[i]++, --a[i], etc.
|
|
22
|
+
if (parent.type === utils_1.AST_NODE_TYPES.UpdateExpression &&
|
|
23
|
+
parent.argument === node) {
|
|
24
|
+
return true;
|
|
25
|
+
}
|
|
26
|
+
// [a[i]] = [0]
|
|
27
|
+
if (parent.type === utils_1.AST_NODE_TYPES.ArrayPattern) {
|
|
28
|
+
return true;
|
|
29
|
+
}
|
|
30
|
+
// [...a[i]] = [0]
|
|
31
|
+
if (parent.type === utils_1.AST_NODE_TYPES.RestElement) {
|
|
32
|
+
return true;
|
|
33
|
+
}
|
|
34
|
+
// ({ foo: a[i] }) = { foo: 0 }
|
|
35
|
+
if (parent.type === utils_1.AST_NODE_TYPES.Property &&
|
|
36
|
+
parent.value === node &&
|
|
37
|
+
parent.parent.type === utils_1.AST_NODE_TYPES.ObjectExpression &&
|
|
38
|
+
isAssignee(parent.parent)) {
|
|
39
|
+
return true;
|
|
40
|
+
}
|
|
41
|
+
return false;
|
|
42
|
+
}
|
|
43
|
+
exports.isAssignee = isAssignee;
|
|
44
|
+
//# sourceMappingURL=isAssignee.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"isAssignee.js","sourceRoot":"","sources":["../../src/util/isAssignee.ts"],"names":[],"mappings":";;;AACA,oDAA0D;AAE1D,SAAgB,UAAU,CAAC,IAAmB;IAC5C,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;IAC3B,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,KAAK,CAAC;IACf,CAAC;IAED,4BAA4B;IAC5B,IACE,MAAM,CAAC,IAAI,KAAK,sBAAc,CAAC,oBAAoB;QACnD,MAAM,CAAC,IAAI,KAAK,IAAI,EACpB,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,cAAc;IACd,IACE,MAAM,CAAC,IAAI,KAAK,sBAAc,CAAC,eAAe;QAC9C,MAAM,CAAC,QAAQ,KAAK,QAAQ;QAC5B,MAAM,CAAC,QAAQ,KAAK,IAAI,EACxB,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,uBAAuB;IACvB,IACE,MAAM,CAAC,IAAI,KAAK,sBAAc,CAAC,gBAAgB;QAC/C,MAAM,CAAC,QAAQ,KAAK,IAAI,EACxB,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,eAAe;IACf,IAAI,MAAM,CAAC,IAAI,KAAK,sBAAc,CAAC,YAAY,EAAE,CAAC;QAChD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,kBAAkB;IAClB,IAAI,MAAM,CAAC,IAAI,KAAK,sBAAc,CAAC,WAAW,EAAE,CAAC;QAC/C,OAAO,IAAI,CAAC;IACd,CAAC;IAED,+BAA+B;IAC/B,IACE,MAAM,CAAC,IAAI,KAAK,sBAAc,CAAC,QAAQ;QACvC,MAAM,CAAC,KAAK,KAAK,IAAI;QACrB,MAAM,CAAC,MAAM,CAAC,IAAI,KAAK,sBAAc,CAAC,gBAAgB;QACtD,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,EACzB,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AApDD,gCAoDC"}
|
|
@@ -37,6 +37,10 @@ type Foo = 3;
|
|
|
37
37
|
const foo = 3 as Foo;
|
|
38
38
|
```
|
|
39
39
|
|
|
40
|
+
```ts
|
|
41
|
+
const foo = 'foo' as const;
|
|
42
|
+
```
|
|
43
|
+
|
|
40
44
|
```ts
|
|
41
45
|
function foo(x: number): number {
|
|
42
46
|
return x!; // unnecessary non-null
|
|
@@ -55,7 +59,7 @@ const foo = 3 as number;
|
|
|
55
59
|
```
|
|
56
60
|
|
|
57
61
|
```ts
|
|
58
|
-
|
|
62
|
+
let foo = 'foo' as const;
|
|
59
63
|
```
|
|
60
64
|
|
|
61
65
|
```ts
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@typescript-eslint/eslint-plugin",
|
|
3
|
-
"version": "7.
|
|
3
|
+
"version": "7.3.0",
|
|
4
4
|
"description": "TypeScript plugin for ESLint",
|
|
5
5
|
"files": [
|
|
6
6
|
"dist",
|
|
@@ -61,10 +61,10 @@
|
|
|
61
61
|
},
|
|
62
62
|
"dependencies": {
|
|
63
63
|
"@eslint-community/regexpp": "^4.5.1",
|
|
64
|
-
"@typescript-eslint/scope-manager": "7.
|
|
65
|
-
"@typescript-eslint/type-utils": "7.
|
|
66
|
-
"@typescript-eslint/utils": "7.
|
|
67
|
-
"@typescript-eslint/visitor-keys": "7.
|
|
64
|
+
"@typescript-eslint/scope-manager": "7.3.0",
|
|
65
|
+
"@typescript-eslint/type-utils": "7.3.0",
|
|
66
|
+
"@typescript-eslint/utils": "7.3.0",
|
|
67
|
+
"@typescript-eslint/visitor-keys": "7.3.0",
|
|
68
68
|
"debug": "^4.3.4",
|
|
69
69
|
"graphemer": "^1.4.0",
|
|
70
70
|
"ignore": "^5.2.4",
|
|
@@ -76,8 +76,8 @@
|
|
|
76
76
|
"@types/debug": "*",
|
|
77
77
|
"@types/marked": "*",
|
|
78
78
|
"@types/natural-compare": "*",
|
|
79
|
-
"@typescript-eslint/rule-schema-to-typescript-types": "7.
|
|
80
|
-
"@typescript-eslint/rule-tester": "7.
|
|
79
|
+
"@typescript-eslint/rule-schema-to-typescript-types": "7.3.0",
|
|
80
|
+
"@typescript-eslint/rule-tester": "7.3.0",
|
|
81
81
|
"ajv": "^6.12.6",
|
|
82
82
|
"chalk": "^5.3.0",
|
|
83
83
|
"cross-env": "^7.0.3",
|