Skip to content

Commit 40806a4

Browse files
authored
fix(no-useless-mustaches): Wrong auto-fix for quoted mustaches (#1140)
1 parent 65c4f79 commit 40806a4

File tree

5 files changed

+46
-2
lines changed

5 files changed

+46
-2
lines changed

.changeset/wise-fireants-obey.md

+5
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
"eslint-plugin-svelte": patch
3+
---
4+
5+
fix(no-useless-mustaches): Wrong auto-fix for quoted mustaches

packages/eslint-plugin-svelte/src/rules/no-useless-mustaches.ts

+9-2
Original file line numberDiff line numberDiff line change
@@ -142,14 +142,21 @@ export default createRule('no-useless-mustaches', {
142142
node.parent.key.range[1],
143143
node.parent.value[0].range[0]
144144
);
145-
if (!div.endsWith('"') && !div.endsWith("'")) {
145+
const quote = div.endsWith('"') ? 'quot' : div.endsWith("'") ? 'apos' : null;
146+
if (!quote) {
146147
return [
147148
fixer.insertTextBefore(node.parent.value[0], '"'),
148149
fixer.replaceText(node, unescaped.replace(/"/gu, '"')),
149150
fixer.insertTextAfter(node.parent.value[node.parent.value.length - 1], '"')
150151
];
151152
}
152-
return fixer.replaceText(node, unescaped);
153+
154+
return fixer.replaceText(
155+
node,
156+
quote === 'quot'
157+
? unescaped.replace(/"/gu, '"')
158+
: unescaped.replace(/'/gu, ''')
159+
);
153160
}
154161
return fixer.replaceText(node, unescaped.replace(/</gu, '&lt;').replace(/>/gu, '&gt;'));
155162
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
- message: Unexpected mustache interpolation with a string literal value.
2+
line: 2
3+
column: 17
4+
suggestions: null
5+
- message: Unexpected mustache interpolation with a string literal value.
6+
line: 4
7+
column: 17
8+
suggestions: null
9+
- message: Unexpected mustache interpolation with a string literal value.
10+
line: 6
11+
column: 17
12+
suggestions: null
13+
- message: Unexpected mustache interpolation with a string literal value.
14+
line: 8
15+
column: 17
16+
suggestions: null
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
<!--prettier-ignore-->
2+
<div data-text="{'\'"'}" />
3+
<!--prettier-ignore-->
4+
<div data-text="{"'\""}" />
5+
<!--prettier-ignore-->
6+
<div data-text='{'\'"'}' />
7+
<!--prettier-ignore-->
8+
<div data-text='{"'\""}' />
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
<!--prettier-ignore-->
2+
<div data-text="'&quot;" />
3+
<!--prettier-ignore-->
4+
<div data-text="'&quot;" />
5+
<!--prettier-ignore-->
6+
<div data-text='&apos;"' />
7+
<!--prettier-ignore-->
8+
<div data-text='&apos;"' />

0 commit comments

Comments
 (0)