@typescript-eslint/eslint-plugin 8.21.1-alpha.11 → 8.21.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.
@@ -62,284 +62,200 @@ exports.default = (0, util_1.createRule)({
62
62
  defaultOptions: [],
63
63
  create(context) {
64
64
  const services = (0, util_1.getParserServices)(context);
65
- const checker = services.program.getTypeChecker();
66
- function isStringLike(type) {
67
- return (0, util_1.isTypeFlagSet)(type, ts.TypeFlags.StringLike);
68
- }
69
- function isUnderlyingTypeString(type) {
70
- if (type.isUnion()) {
71
- return type.types.every(isStringLike);
65
+ function isUnderlyingTypeString(expression) {
66
+ const checker = services.program.getTypeChecker();
67
+ const { constraintType } = (0, util_1.getConstraintInfo)(checker, services.getTypeAtLocation(expression));
68
+ if (constraintType == null) {
69
+ return false;
72
70
  }
73
- if (type.isIntersection()) {
74
- return type.types.some(isStringLike);
71
+ const isString = (t) => {
72
+ return (0, util_1.isTypeFlagSet)(t, ts.TypeFlags.StringLike);
73
+ };
74
+ if (constraintType.isUnion()) {
75
+ return constraintType.types.every(isString);
75
76
  }
76
- return isStringLike(type);
77
- }
78
- /**
79
- * Checks for whole enum types, i.e. `MyEnum`, and not their values, i.e. `MyEnum.A`
80
- */
81
- function isEnumType(type) {
82
- const symbol = type.getSymbol();
83
- return !!(symbol?.valueDeclaration &&
84
- ts.isEnumDeclaration(symbol.valueDeclaration));
77
+ if (constraintType.isIntersection()) {
78
+ return constraintType.types.some(isString);
79
+ }
80
+ return isString(constraintType);
85
81
  }
86
- const isLiteral = (0, util_1.isNodeOfType)(utils_1.TSESTree.AST_NODE_TYPES.Literal);
87
- function isTemplateLiteral(node) {
88
- return node.type === utils_1.AST_NODE_TYPES.TemplateLiteral;
82
+ function isLiteral(expression) {
83
+ return expression.type === utils_1.AST_NODE_TYPES.Literal;
89
84
  }
90
- function isInfinityIdentifier(node) {
91
- return (node.type === utils_1.AST_NODE_TYPES.Identifier && node.name === 'Infinity');
85
+ function isTemplateLiteral(expression) {
86
+ return expression.type === utils_1.AST_NODE_TYPES.TemplateLiteral;
92
87
  }
93
- function isNaNIdentifier(node) {
94
- return node.type === utils_1.AST_NODE_TYPES.Identifier && node.name === 'NaN';
88
+ function isInfinityIdentifier(expression) {
89
+ return (expression.type === utils_1.AST_NODE_TYPES.Identifier &&
90
+ expression.name === 'Infinity');
95
91
  }
96
- function isFixableIdentifier(node) {
97
- return ((0, util_1.isUndefinedIdentifier)(node) ||
98
- isInfinityIdentifier(node) ||
99
- isNaNIdentifier(node));
92
+ function isNaNIdentifier(expression) {
93
+ return (expression.type === utils_1.AST_NODE_TYPES.Identifier &&
94
+ expression.name === 'NaN');
100
95
  }
101
96
  function hasCommentsBetweenQuasi(startQuasi, endQuasi) {
102
97
  const startToken = (0, util_1.nullThrows)(context.sourceCode.getTokenByRangeStart(startQuasi.range[0]), util_1.NullThrowsReasons.MissingToken('`${', 'opening template literal'));
103
98
  const endToken = (0, util_1.nullThrows)(context.sourceCode.getTokenByRangeStart(endQuasi.range[0]), util_1.NullThrowsReasons.MissingToken('}', 'closing template literal'));
104
99
  return context.sourceCode.commentsExistBetween(startToken, endToken);
105
100
  }
106
- function isTrivialInterpolation(node) {
107
- return (node.quasis.length === 2 &&
108
- node.quasis[0].value.raw === '' &&
109
- node.quasis[1].value.raw === '');
110
- }
111
- function getInterpolations(node) {
112
- if (node.type === utils_1.AST_NODE_TYPES.TemplateLiteral) {
113
- return node.expressions;
114
- }
115
- return node.types;
116
- }
117
- function getInterpolationInfos(node) {
118
- return getInterpolations(node).map((interpolation, index) => ({
119
- interpolation,
120
- nextQuasi: node.quasis[index + 1],
121
- prevQuasi: node.quasis[index],
122
- }));
123
- }
124
- function getLiteral(node) {
125
- const maybeLiteral = node.type === utils_1.AST_NODE_TYPES.TSLiteralType ? node.literal : node;
126
- return isLiteral(maybeLiteral) ? maybeLiteral : null;
127
- }
128
- function getTemplateLiteral(node) {
129
- const maybeTemplateLiteral = node.type === utils_1.AST_NODE_TYPES.TSLiteralType ? node.literal : node;
130
- return isTemplateLiteral(maybeTemplateLiteral)
131
- ? maybeTemplateLiteral
132
- : null;
133
- }
134
- function reportSingleInterpolation(node) {
135
- const interpolations = getInterpolations(node);
136
- context.report({
137
- loc: (0, rangeToLoc_1.rangeToLoc)(context.sourceCode, [
138
- interpolations[0].range[0] - 2,
139
- interpolations[0].range[1] + 1,
140
- ]),
141
- messageId: 'noUnnecessaryTemplateExpression',
142
- fix(fixer) {
143
- const wrappingCode = (0, util_1.getMovedNodeCode)({
144
- destinationNode: node,
145
- nodeToMove: interpolations[0],
146
- sourceCode: context.sourceCode,
147
- });
148
- return fixer.replaceText(node, wrappingCode);
149
- },
150
- });
151
- }
152
- function isUnncessaryValueInterpolation({ interpolation, nextQuasi, prevQuasi, }) {
153
- if (hasCommentsBetweenQuasi(prevQuasi, nextQuasi)) {
154
- return false;
155
- }
156
- if (isFixableIdentifier(interpolation)) {
157
- return true;
158
- }
159
- if (isLiteral(interpolation)) {
160
- // allow trailing whitespace literal
161
- if (startsWithNewLine(nextQuasi.value.raw)) {
162
- return !(typeof interpolation.value === 'string' &&
163
- isWhitespace(interpolation.value));
164
- }
165
- return true;
166
- }
167
- if (isTemplateLiteral(interpolation)) {
168
- // allow trailing whitespace literal
169
- if (startsWithNewLine(nextQuasi.value.raw)) {
170
- return !(interpolation.quasis.length === 1 &&
171
- isWhitespace(interpolation.quasis[0].value.raw));
172
- }
173
- return true;
174
- }
175
- return false;
176
- }
177
- function isUnncessaryTypeInterpolation({ interpolation, nextQuasi, prevQuasi, }) {
178
- if (hasCommentsBetweenQuasi(prevQuasi, nextQuasi)) {
179
- return false;
180
- }
181
- const literal = getLiteral(interpolation);
182
- if (literal) {
183
- // allow trailing whitespace literal
184
- if (startsWithNewLine(nextQuasi.value.raw)) {
185
- return !(typeof literal.value === 'string' && isWhitespace(literal.value));
186
- }
187
- return true;
188
- }
189
- if (interpolation.type === utils_1.AST_NODE_TYPES.TSNullKeyword ||
190
- interpolation.type === utils_1.AST_NODE_TYPES.TSUndefinedKeyword) {
191
- return true;
192
- }
193
- const templateLiteral = getTemplateLiteral(interpolation);
194
- if (templateLiteral) {
195
- // allow trailing whitespace literal
196
- if (startsWithNewLine(nextQuasi.value.raw)) {
197
- return !(templateLiteral.quasis.length === 1 &&
198
- isWhitespace(templateLiteral.quasis[0].value.raw));
199
- }
200
- return true;
201
- }
202
- return false;
203
- }
204
- function getReportDescriptors(infos) {
205
- let nextCharacterIsOpeningCurlyBrace = false;
206
- const reportDescriptors = [];
207
- const reversedInfos = [...infos].reverse();
208
- for (const { interpolation, nextQuasi, prevQuasi } of reversedInfos) {
209
- const fixers = [];
210
- if (nextQuasi.value.raw !== '') {
211
- nextCharacterIsOpeningCurlyBrace =
212
- nextQuasi.value.raw.startsWith('{');
213
- }
214
- const literal = getLiteral(interpolation);
215
- const templateLiteral = getTemplateLiteral(interpolation);
216
- if (literal) {
217
- let escapedValue = (typeof literal.value === 'string'
218
- ? // The value is already a string, so we're removing quotes:
219
- // "'va`lue'" -> "va`lue"
220
- literal.raw.slice(1, -1)
221
- : // The value may be one of number | bigint | boolean | RegExp | null.
222
- // In regular expressions, we escape every backslash
223
- String(literal.value).replaceAll('\\', '\\\\'))
224
- // The string or RegExp may contain ` or ${.
225
- // We want both of these to be escaped in the final template expression.
226
- //
227
- // A pair of backslashes means "escaped backslash", so backslashes
228
- // from this pair won't escape ` or ${. Therefore, to escape these
229
- // sequences in the resulting template expression, we need to escape
230
- // all sequences that are preceded by an even number of backslashes.
231
- //
232
- // This RegExp does the following transformations:
233
- // \` -> \`
234
- // \\` -> \\\`
235
- // \${ -> \${
236
- // \\${ -> \\\${
237
- .replaceAll(new RegExp(`${String(evenNumOfBackslashesRegExp.source)}(\`|\\\${)`, 'g'), '\\$1');
238
- // `...${'...$'}{...`
239
- // ^^^^
240
- if (nextCharacterIsOpeningCurlyBrace &&
241
- endsWithUnescapedDollarSign(escapedValue)) {
242
- escapedValue = escapedValue.replaceAll(/\$$/g, '\\$');
243
- }
244
- if (escapedValue.length !== 0) {
245
- nextCharacterIsOpeningCurlyBrace = escapedValue.startsWith('{');
246
- }
247
- fixers.push(fixer => [fixer.replaceText(literal, escapedValue)]);
248
- }
249
- else if (templateLiteral) {
250
- // Since we iterate from the last expression to the first,
251
- // a subsequent expression can tell the current expression
252
- // that it starts with {.
253
- //
254
- // `... ${`... $`}${'{...'} ...`
255
- // ^ ^ subsequent expression starts with {
256
- // current expression ends with a dollar sign,
257
- // so '$' + '{' === '${' (bad news for us).
258
- // Let's escape the dollar sign at the end.
259
- if (nextCharacterIsOpeningCurlyBrace &&
260
- endsWithUnescapedDollarSign(templateLiteral.quasis[templateLiteral.quasis.length - 1].value
261
- .raw)) {
262
- fixers.push(fixer => [
263
- fixer.replaceTextRange([templateLiteral.range[1] - 2, templateLiteral.range[1] - 2], '\\'),
264
- ]);
265
- }
266
- if (templateLiteral.quasis.length === 1 &&
267
- templateLiteral.quasis[0].value.raw.length !== 0) {
268
- nextCharacterIsOpeningCurlyBrace =
269
- templateLiteral.quasis[0].value.raw.startsWith('{');
270
- }
271
- // Remove the beginning and trailing backtick characters.
272
- fixers.push(fixer => [
273
- fixer.removeRange([
274
- templateLiteral.range[0],
275
- templateLiteral.range[0] + 1,
276
- ]),
277
- fixer.removeRange([
278
- templateLiteral.range[1] - 1,
279
- templateLiteral.range[1],
280
- ]),
281
- ]);
282
- }
283
- else {
284
- nextCharacterIsOpeningCurlyBrace = false;
285
- }
286
- // `... $${'{...'} ...`
287
- // ^^^^^
288
- if (nextCharacterIsOpeningCurlyBrace &&
289
- endsWithUnescapedDollarSign(prevQuasi.value.raw)) {
290
- fixers.push(fixer => [
291
- fixer.replaceTextRange([prevQuasi.range[1] - 3, prevQuasi.range[1] - 2], '\\$'),
292
- ]);
293
- }
294
- const warnLocStart = prevQuasi.range[1] - 2;
295
- const warnLocEnd = nextQuasi.range[0] + 1;
296
- reportDescriptors.push({
297
- loc: (0, rangeToLoc_1.rangeToLoc)(context.sourceCode, [warnLocStart, warnLocEnd]),
298
- messageId: 'noUnnecessaryTemplateExpression',
299
- fix(fixer) {
300
- return [
301
- // Remove the quasis' parts that are related to the current expression.
302
- fixer.removeRange([warnLocStart, interpolation.range[0]]),
303
- fixer.removeRange([interpolation.range[1], warnLocEnd]),
304
- ...fixers.flatMap(cb => cb(fixer)),
305
- ];
306
- },
307
- });
308
- }
309
- return reportDescriptors;
310
- }
311
101
  return {
312
102
  TemplateLiteral(node) {
313
103
  if (node.parent.type === utils_1.AST_NODE_TYPES.TaggedTemplateExpression) {
314
104
  return;
315
105
  }
316
- if (isTrivialInterpolation(node) &&
317
- !hasCommentsBetweenQuasi(node.quasis[0], node.quasis[1])) {
318
- const { constraintType } = (0, util_1.getConstraintInfo)(checker, services.getTypeAtLocation(node.expressions[0]));
319
- if (constraintType && isUnderlyingTypeString(constraintType)) {
320
- reportSingleInterpolation(node);
106
+ const hasSingleStringVariable = node.quasis.length === 2 &&
107
+ node.quasis[0].value.raw === '' &&
108
+ node.quasis[1].value.raw === '' &&
109
+ node.expressions.length === 1 &&
110
+ isUnderlyingTypeString(node.expressions[0]);
111
+ if (hasSingleStringVariable) {
112
+ if (hasCommentsBetweenQuasi(node.quasis[0], node.quasis[1])) {
321
113
  return;
322
114
  }
115
+ context.report({
116
+ loc: (0, rangeToLoc_1.rangeToLoc)(context.sourceCode, [
117
+ node.expressions[0].range[0] - 2,
118
+ node.expressions[0].range[1] + 1,
119
+ ]),
120
+ messageId: 'noUnnecessaryTemplateExpression',
121
+ fix(fixer) {
122
+ const wrappingCode = (0, util_1.getMovedNodeCode)({
123
+ destinationNode: node,
124
+ nodeToMove: node.expressions[0],
125
+ sourceCode: context.sourceCode,
126
+ });
127
+ return fixer.replaceText(node, wrappingCode);
128
+ },
129
+ });
130
+ return;
323
131
  }
324
- const infos = getInterpolationInfos(node).filter(isUnncessaryValueInterpolation);
325
- for (const reportDescriptor of getReportDescriptors(infos)) {
326
- context.report(reportDescriptor);
327
- }
328
- },
329
- TSTemplateLiteralType(node) {
330
- if (isTrivialInterpolation(node) &&
331
- !hasCommentsBetweenQuasi(node.quasis[0], node.quasis[1])) {
332
- const { constraintType } = (0, util_1.getConstraintInfo)(checker, services.getTypeAtLocation(node.types[0]));
333
- if (constraintType &&
334
- isUnderlyingTypeString(constraintType) &&
335
- !isEnumType(constraintType)) {
336
- reportSingleInterpolation(node);
337
- return;
132
+ const fixableExpressionsReversed = node.expressions
133
+ .map((expression, index) => ({
134
+ expression,
135
+ nextQuasi: node.quasis[index + 1],
136
+ prevQuasi: node.quasis[index],
137
+ }))
138
+ .filter(({ expression, nextQuasi, prevQuasi }) => {
139
+ if ((0, util_1.isUndefinedIdentifier)(expression) ||
140
+ isInfinityIdentifier(expression) ||
141
+ isNaNIdentifier(expression)) {
142
+ return true;
338
143
  }
339
- }
340
- const infos = getInterpolationInfos(node).filter(isUnncessaryTypeInterpolation);
341
- for (const reportDescriptor of getReportDescriptors(infos)) {
342
- context.report(reportDescriptor);
144
+ // allow expressions that include comments
145
+ if (hasCommentsBetweenQuasi(prevQuasi, nextQuasi)) {
146
+ return false;
147
+ }
148
+ if (isLiteral(expression)) {
149
+ // allow trailing whitespace literal
150
+ if (startsWithNewLine(nextQuasi.value.raw)) {
151
+ return !(typeof expression.value === 'string' &&
152
+ isWhitespace(expression.value));
153
+ }
154
+ return true;
155
+ }
156
+ if (isTemplateLiteral(expression)) {
157
+ // allow trailing whitespace literal
158
+ if (startsWithNewLine(nextQuasi.value.raw)) {
159
+ return !(expression.quasis.length === 1 &&
160
+ isWhitespace(expression.quasis[0].value.raw));
161
+ }
162
+ return true;
163
+ }
164
+ return false;
165
+ })
166
+ .reverse();
167
+ let nextCharacterIsOpeningCurlyBrace = false;
168
+ for (const { expression, nextQuasi, prevQuasi, } of fixableExpressionsReversed) {
169
+ const fixers = [];
170
+ if (nextQuasi.value.raw !== '') {
171
+ nextCharacterIsOpeningCurlyBrace =
172
+ nextQuasi.value.raw.startsWith('{');
173
+ }
174
+ if (isLiteral(expression)) {
175
+ let escapedValue = (typeof expression.value === 'string'
176
+ ? // The value is already a string, so we're removing quotes:
177
+ // "'va`lue'" -> "va`lue"
178
+ expression.raw.slice(1, -1)
179
+ : // The value may be one of number | bigint | boolean | RegExp | null.
180
+ // In regular expressions, we escape every backslash
181
+ String(expression.value).replaceAll('\\', '\\\\'))
182
+ // The string or RegExp may contain ` or ${.
183
+ // We want both of these to be escaped in the final template expression.
184
+ //
185
+ // A pair of backslashes means "escaped backslash", so backslashes
186
+ // from this pair won't escape ` or ${. Therefore, to escape these
187
+ // sequences in the resulting template expression, we need to escape
188
+ // all sequences that are preceded by an even number of backslashes.
189
+ //
190
+ // This RegExp does the following transformations:
191
+ // \` -> \`
192
+ // \\` -> \\\`
193
+ // \${ -> \${
194
+ // \\${ -> \\\${
195
+ .replaceAll(new RegExp(`${String(evenNumOfBackslashesRegExp.source)}(\`|\\\${)`, 'g'), '\\$1');
196
+ // `...${'...$'}{...`
197
+ // ^^^^
198
+ if (nextCharacterIsOpeningCurlyBrace &&
199
+ endsWithUnescapedDollarSign(escapedValue)) {
200
+ escapedValue = escapedValue.replaceAll(/\$$/g, '\\$');
201
+ }
202
+ if (escapedValue.length !== 0) {
203
+ nextCharacterIsOpeningCurlyBrace = escapedValue.startsWith('{');
204
+ }
205
+ fixers.push(fixer => [fixer.replaceText(expression, escapedValue)]);
206
+ }
207
+ else if (isTemplateLiteral(expression)) {
208
+ // Since we iterate from the last expression to the first,
209
+ // a subsequent expression can tell the current expression
210
+ // that it starts with {.
211
+ //
212
+ // `... ${`... $`}${'{...'} ...`
213
+ // ^ ^ subsequent expression starts with {
214
+ // current expression ends with a dollar sign,
215
+ // so '$' + '{' === '${' (bad news for us).
216
+ // Let's escape the dollar sign at the end.
217
+ if (nextCharacterIsOpeningCurlyBrace &&
218
+ endsWithUnescapedDollarSign(expression.quasis[expression.quasis.length - 1].value.raw)) {
219
+ fixers.push(fixer => [
220
+ fixer.replaceTextRange([expression.range[1] - 2, expression.range[1] - 2], '\\'),
221
+ ]);
222
+ }
223
+ if (expression.quasis.length === 1 &&
224
+ expression.quasis[0].value.raw.length !== 0) {
225
+ nextCharacterIsOpeningCurlyBrace =
226
+ expression.quasis[0].value.raw.startsWith('{');
227
+ }
228
+ // Remove the beginning and trailing backtick characters.
229
+ fixers.push(fixer => [
230
+ fixer.removeRange([expression.range[0], expression.range[0] + 1]),
231
+ fixer.removeRange([expression.range[1] - 1, expression.range[1]]),
232
+ ]);
233
+ }
234
+ else {
235
+ nextCharacterIsOpeningCurlyBrace = false;
236
+ }
237
+ // `... $${'{...'} ...`
238
+ // ^^^^^
239
+ if (nextCharacterIsOpeningCurlyBrace &&
240
+ endsWithUnescapedDollarSign(prevQuasi.value.raw)) {
241
+ fixers.push(fixer => [
242
+ fixer.replaceTextRange([prevQuasi.range[1] - 3, prevQuasi.range[1] - 2], '\\$'),
243
+ ]);
244
+ }
245
+ const warnLocStart = prevQuasi.range[1] - 2;
246
+ const warnLocEnd = nextQuasi.range[0] + 1;
247
+ context.report({
248
+ loc: (0, rangeToLoc_1.rangeToLoc)(context.sourceCode, [warnLocStart, warnLocEnd]),
249
+ messageId: 'noUnnecessaryTemplateExpression',
250
+ fix(fixer) {
251
+ return [
252
+ // Remove the quasis' parts that are related to the current expression.
253
+ fixer.removeRange([warnLocStart, expression.range[0]]),
254
+ fixer.removeRange([expression.range[1], warnLocEnd]),
255
+ ...fixers.flatMap(cb => cb(fixer)),
256
+ ];
257
+ },
258
+ });
343
259
  }
344
260
  },
345
261
  };
@@ -1 +1 @@
1
- {"version":3,"file":"no-unnecessary-template-expression.js","sourceRoot":"","sources":["../../src/rules/no-unnecessary-template-expression.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"no-unnecessary-template-expression.js","sourceRoot":"","sources":["../../src/rules/no-unnecessary-template-expression.ts"],"names":[],"mappings":"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"}