@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
- type: 'problem',
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,IAAI,EAAE,SAAS;QACf,IAAI,EAAE;YACJ,WAAW,EAAE,wCAAwC;YACrD,WAAW,EAAE,QAAQ;YACrB,oBAAoB,EAAE,IAAI;SAC3B;QACD,QAAQ,EAAE;YACR,wBAAwB,EACtB,mEAAmE;SACtE;QACD,MAAM,EAAE,EAAE;KACX;IACD,cAAc,EAAE,EAAE;IAClB,MAAM,CAAC,OAAO;QACZ,MAAM,QAAQ,GAAG,IAAA,wBAAiB,EAAC,OAAO,CAAC,CAAC;QAE5C,SAAS,sBAAsB,CAC7B,UAA+B;YAE/B,MAAM,IAAI,GAAG,IAAA,mCAA4B,EAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;YAEhE,MAAM,QAAQ,GAAG,CAAC,CAAU,EAAW,EAAE;gBACvC,OAAO,IAAA,oBAAa,EAAC,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;YACnD,CAAC,CAAC;YAEF,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC;gBACnB,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;YACpC,CAAC;YAED,IAAI,IAAI,CAAC,cAAc,EAAE,EAAE,CAAC;gBAC1B,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACnC,CAAC;YAED,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC;QACxB,CAAC;QAED,OAAO;YACL,eAAe,CAAC,IAA8B;gBAC5C,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,sBAAc,CAAC,wBAAwB,EAAE,CAAC;oBACjE,OAAO;gBACT,CAAC;gBAED,MAAM,uBAAuB,GAC3B,IAAI,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC;oBACxB,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,KAAK,EAAE;oBAC/B,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,KAAK,EAAE;oBAC/B,IAAI,CAAC,WAAW,CAAC,MAAM,KAAK,CAAC;oBAC7B,sBAAsB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;gBAE9C,IAAI,uBAAuB,EAAE,CAAC;oBAC5B,OAAO,CAAC,MAAM,CAAC;wBACb,IAAI,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;wBACzB,SAAS,EAAE,0BAA0B;qBACtC,CAAC,CAAC;oBAEH,OAAO;gBACT,CAAC;gBAED,MAAM,8BAA8B,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAC5D,CAAC,UAAU,EAAwD,EAAE,CACnE,UAAU,CAAC,IAAI,KAAK,sBAAc,CAAC,OAAO;oBAC1C,IAAA,4BAAqB,EAAC,UAAU,CAAC,CACpC,CAAC;gBAEF,8BAA8B,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE;oBAClD,OAAO,CAAC,MAAM,CAAC;wBACb,IAAI,EAAE,UAAU;wBAChB,SAAS,EAAE,0BAA0B;qBACtC,CAAC,CAAC;gBACL,CAAC,CAAC,CAAC;YACL,CAAC;SACF,CAAC;IACJ,CAAC;CACF,CAAC,CAAC"}
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.1",
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.1",
61
- "@typescript-eslint/type-utils": "6.18.2-alpha.1",
62
- "@typescript-eslint/utils": "6.18.2-alpha.1",
63
- "@typescript-eslint/visitor-keys": "6.18.2-alpha.1",
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.1",
77
- "@typescript-eslint/rule-tester": "6.18.2-alpha.1",
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": "*",