Skip to content

Commit e245485

Browse files
committed
wip: address feedback
1 parent 00ab7dd commit e245485

File tree

3 files changed

+30
-19
lines changed

3 files changed

+30
-19
lines changed

src/rules/prefer-reactive-destructuring.ts

+21-17
Original file line numberDiff line numberDiff line change
@@ -40,23 +40,27 @@ export default createRule("prefer-reactive-destructuring", {
4040
node,
4141
loc: node.loc,
4242
messageId: "useDestructuring",
43-
suggest: [
44-
{
45-
messageId: "suggestDestructuring",
46-
fix: (fixer) => [
47-
fixer.insertTextBefore(
48-
lToken,
49-
matched ? `({ ` : `({ ${prop}: `,
50-
),
51-
fixer.insertTextAfter(lToken, ` }`),
52-
fixer.replaceTextRange(
53-
[rTokens[0].range[0], rTokens[1].range[1]],
54-
"",
55-
),
56-
fixer.insertTextAfter(rTokens[1], ")"),
57-
],
58-
},
59-
],
43+
suggest:
44+
// Don't show suggestions for entries like $: info = foo.bar.info, the destructuring
45+
// just looks too gross and complicates the rule too much
46+
right.object.type === "MemberExpression"
47+
? []
48+
: [
49+
{
50+
messageId: "suggestDestructuring",
51+
fix: (fixer) => [
52+
fixer.insertTextBefore(
53+
lToken,
54+
matched ? `({ ` : `({ ${prop}: `,
55+
),
56+
fixer.insertTextAfter(lToken, ` }`),
57+
fixer.replaceTextRange(
58+
[rTokens[0].range[0], rTokens[1].range[1]],
59+
")",
60+
),
61+
],
62+
},
63+
],
6064
})
6165
},
6266
}

tests/fixtures/rules/prefer-reactive-destructuring/invalid/test01-errors.json

+8-2
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
{
88
"desc": "Use destructuring to get finer-grained redraws",
99
"messageId": "suggestDestructuring",
10-
"output": "<!-- prettier-ignore -->\n<script>\n $: ({ info } = foo)\n $: bar = foo.something\n</script>\n"
10+
"output": "<!-- prettier-ignore -->\n<script>\n $: ({ info } = foo)\n $: bar = foo.something\n $: baz = foo.bar.baz\n</script>\n"
1111
}
1212
]
1313
},
@@ -19,8 +19,14 @@
1919
{
2020
"desc": "Use destructuring to get finer-grained redraws",
2121
"messageId": "suggestDestructuring",
22-
"output": "<!-- prettier-ignore -->\n<script>\n $: info = foo.info\n $: ({ something: bar } = foo)\n</script>\n"
22+
"output": "<!-- prettier-ignore -->\n<script>\n $: info = foo.info\n $: ({ something: bar } = foo)\n $: baz = foo.bar.baz\n</script>\n"
2323
}
2424
]
25+
},
26+
{
27+
"message": "Prefer destructuring in reactive statements",
28+
"line": 5,
29+
"column": 8,
30+
"suggestions": null
2531
}
2632
]

tests/fixtures/rules/prefer-reactive-destructuring/invalid/test01-input.svelte

+1
Original file line numberDiff line numberDiff line change
@@ -2,4 +2,5 @@
22
<script>
33
$: info = foo.info
44
$: bar = foo.something
5+
$: baz = foo.bar.baz
56
</script>

0 commit comments

Comments
 (0)