@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.
- package/dist/rules/no-duplicate-type-constituents.js +71 -97
- package/dist/rules/no-duplicate-type-constituents.js.map +1 -1
- package/dist/rules/no-extraneous-class.js +3 -4
- package/dist/rules/no-extraneous-class.js.map +1 -1
- package/dist/rules/no-shadow.js +3 -2
- package/dist/rules/no-shadow.js.map +1 -1
- package/dist/rules/no-unnecessary-condition.js +43 -7
- package/dist/rules/no-unnecessary-condition.js.map +1 -1
- package/dist/rules/no-unnecessary-template-expression.js +173 -257
- package/dist/rules/no-unnecessary-template-expression.js.map +1 -1
- package/dist/rules/prefer-nullish-coalescing.js +56 -106
- package/dist/rules/prefer-nullish-coalescing.js.map +1 -1
- package/dist/rules/prefer-readonly.js +1 -58
- package/dist/rules/prefer-readonly.js.map +1 -1
- package/dist/util/index.js +0 -2
- package/dist/util/index.js.map +1 -1
- package/docs/rules/consistent-type-imports.mdx +2 -2
- package/docs/rules/no-namespace.mdx +4 -12
- package/docs/rules/no-require-imports.mdx +6 -20
- package/docs/rules/no-unnecessary-template-expression.mdx +0 -19
- package/docs/rules/no-unused-vars.mdx +1 -68
- package/docs/rules/prefer-nullish-coalescing.mdx +0 -5
- package/package.json +7 -7
- package/dist/util/getValueOfLiteralType.js +0 -17
- package/dist/util/getValueOfLiteralType.js.map +0 -1
- package/dist/util/truthinessAndNullishUtils.js +0 -68
- package/dist/util/truthinessAndNullishUtils.js.map +0 -1
@@ -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
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
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
|
-
|
74
|
-
return
|
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
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
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
|
-
|
87
|
-
|
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
|
91
|
-
return
|
85
|
+
function isTemplateLiteral(expression) {
|
86
|
+
return expression.type === utils_1.AST_NODE_TYPES.TemplateLiteral;
|
92
87
|
}
|
93
|
-
function
|
94
|
-
return
|
88
|
+
function isInfinityIdentifier(expression) {
|
89
|
+
return (expression.type === utils_1.AST_NODE_TYPES.Identifier &&
|
90
|
+
expression.name === 'Infinity');
|
95
91
|
}
|
96
|
-
function
|
97
|
-
return (
|
98
|
-
|
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
|
-
|
317
|
-
|
318
|
-
|
319
|
-
|
320
|
-
|
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
|
325
|
-
|
326
|
-
|
327
|
-
|
328
|
-
|
329
|
-
|
330
|
-
|
331
|
-
|
332
|
-
|
333
|
-
|
334
|
-
|
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
|
-
|
341
|
-
|
342
|
-
|
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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"}
|