@typescript-eslint/eslint-plugin 6.18.2-alpha.1 → 6.18.2-alpha.2
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.
|
@@ -29,7 +29,8 @@ const util_1 = require("../util");
|
|
|
29
29
|
exports.default = (0, util_1.createRule)({
|
|
30
30
|
name: 'no-useless-template-literals',
|
|
31
31
|
meta: {
|
|
32
|
-
|
|
32
|
+
fixable: 'code',
|
|
33
|
+
type: 'suggestion',
|
|
33
34
|
docs: {
|
|
34
35
|
description: 'Disallow unnecessary template literals',
|
|
35
36
|
recommended: 'strict',
|
|
@@ -70,6 +71,20 @@ exports.default = (0, util_1.createRule)({
|
|
|
70
71
|
context.report({
|
|
71
72
|
node: node.expressions[0],
|
|
72
73
|
messageId: 'noUselessTemplateLiteral',
|
|
74
|
+
fix(fixer) {
|
|
75
|
+
const [prevQuasi, nextQuasi] = node.quasis;
|
|
76
|
+
// Remove the quasis and backticks.
|
|
77
|
+
return [
|
|
78
|
+
fixer.removeRange([
|
|
79
|
+
prevQuasi.range[1] - 3,
|
|
80
|
+
node.expressions[0].range[0],
|
|
81
|
+
]),
|
|
82
|
+
fixer.removeRange([
|
|
83
|
+
node.expressions[0].range[1],
|
|
84
|
+
nextQuasi.range[0] + 2,
|
|
85
|
+
]),
|
|
86
|
+
];
|
|
87
|
+
},
|
|
73
88
|
});
|
|
74
89
|
return;
|
|
75
90
|
}
|
|
@@ -79,6 +94,30 @@ exports.default = (0, util_1.createRule)({
|
|
|
79
94
|
context.report({
|
|
80
95
|
node: expression,
|
|
81
96
|
messageId: 'noUselessTemplateLiteral',
|
|
97
|
+
fix(fixer) {
|
|
98
|
+
const index = node.expressions.indexOf(expression);
|
|
99
|
+
const prevQuasi = node.quasis[index];
|
|
100
|
+
const nextQuasi = node.quasis[index + 1];
|
|
101
|
+
// Remove the quasis' parts that are related to the current expression.
|
|
102
|
+
const fixes = [
|
|
103
|
+
fixer.removeRange([
|
|
104
|
+
prevQuasi.range[1] - 2,
|
|
105
|
+
expression.range[0],
|
|
106
|
+
]),
|
|
107
|
+
fixer.removeRange([
|
|
108
|
+
expression.range[1],
|
|
109
|
+
nextQuasi.range[0] + 1,
|
|
110
|
+
]),
|
|
111
|
+
];
|
|
112
|
+
// Remove quotes for string literals (i.e. `'a'` will become `a`).
|
|
113
|
+
const isStringLiteral = isUnderlyingTypeString(expression) &&
|
|
114
|
+
expression.type === utils_1.AST_NODE_TYPES.Literal;
|
|
115
|
+
if (isStringLiteral) {
|
|
116
|
+
const escapedValue = expression.value.replace(/([`$\\])/g, '\\$1');
|
|
117
|
+
fixes.push(fixer.replaceText(expression, escapedValue));
|
|
118
|
+
}
|
|
119
|
+
return fixes;
|
|
120
|
+
},
|
|
82
121
|
});
|
|
83
122
|
});
|
|
84
123
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"no-useless-template-literals.js","sourceRoot":"","sources":["../../src/rules/no-useless-template-literals.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AACA,oDAA0D;AAC1D,+CAAiC;AAEjC,kCAMiB;AAIjB,kBAAe,IAAA,iBAAU,EAAgB;IACvC,IAAI,EAAE,8BAA8B;IACpC,IAAI,EAAE;QACJ,
|
|
1
|
+
{"version":3,"file":"no-useless-template-literals.js","sourceRoot":"","sources":["../../src/rules/no-useless-template-literals.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@typescript-eslint/eslint-plugin",
|
|
3
|
-
"version": "6.18.2-alpha.
|
|
3
|
+
"version": "6.18.2-alpha.2",
|
|
4
4
|
"description": "TypeScript plugin for ESLint",
|
|
5
5
|
"files": [
|
|
6
6
|
"dist",
|
|
@@ -57,10 +57,10 @@
|
|
|
57
57
|
},
|
|
58
58
|
"dependencies": {
|
|
59
59
|
"@eslint-community/regexpp": "^4.5.1",
|
|
60
|
-
"@typescript-eslint/scope-manager": "6.18.2-alpha.
|
|
61
|
-
"@typescript-eslint/type-utils": "6.18.2-alpha.
|
|
62
|
-
"@typescript-eslint/utils": "6.18.2-alpha.
|
|
63
|
-
"@typescript-eslint/visitor-keys": "6.18.2-alpha.
|
|
60
|
+
"@typescript-eslint/scope-manager": "6.18.2-alpha.2",
|
|
61
|
+
"@typescript-eslint/type-utils": "6.18.2-alpha.2",
|
|
62
|
+
"@typescript-eslint/utils": "6.18.2-alpha.2",
|
|
63
|
+
"@typescript-eslint/visitor-keys": "6.18.2-alpha.2",
|
|
64
64
|
"debug": "^4.3.4",
|
|
65
65
|
"graphemer": "^1.4.0",
|
|
66
66
|
"ignore": "^5.2.4",
|
|
@@ -73,8 +73,8 @@
|
|
|
73
73
|
"@types/debug": "*",
|
|
74
74
|
"@types/marked": "*",
|
|
75
75
|
"@types/natural-compare": "*",
|
|
76
|
-
"@typescript-eslint/rule-schema-to-typescript-types": "6.18.2-alpha.
|
|
77
|
-
"@typescript-eslint/rule-tester": "6.18.2-alpha.
|
|
76
|
+
"@typescript-eslint/rule-schema-to-typescript-types": "6.18.2-alpha.2",
|
|
77
|
+
"@typescript-eslint/rule-tester": "6.18.2-alpha.2",
|
|
78
78
|
"ajv": "^6.12.6",
|
|
79
79
|
"chalk": "^5.3.0",
|
|
80
80
|
"cross-fetch": "*",
|