diff --git a/.changeset/gorgeous-geckos-unite.md b/.changeset/gorgeous-geckos-unite.md new file mode 100644 index 000000000..3473ada47 --- /dev/null +++ b/.changeset/gorgeous-geckos-unite.md @@ -0,0 +1,5 @@ +--- +"eslint-plugin-svelte": patch +--- + +fix: false positives for builtin `$$` vars in `svelte/prefer-destructured-store-props` diff --git a/src/rules/prefer-destructured-store-props.ts b/src/rules/prefer-destructured-store-props.ts index ca5afcb84..c31912e53 100644 --- a/src/rules/prefer-destructured-store-props.ts +++ b/src/rules/prefer-destructured-store-props.ts @@ -157,7 +157,7 @@ export default createRule("prefer-destructured-store-props", { // $: ({ bar } = $foo); // {bar} // Same with {$foo["bar"]} - "MemberExpression[object.type='Identifier'][object.name=/^\\$/]"( + "MemberExpression[object.type='Identifier'][object.name=/^\\$[^\\$]/]"( node: StoreMemberExpression, ) { if (inScriptElement) return // Within a script tag @@ -166,7 +166,7 @@ export default createRule("prefer-destructured-store-props", { Identifier(node: TSESTree.Identifier) { storeMemberAccessStack[0]?.identifiers.push(node) }, - "MemberExpression[object.type='Identifier'][object.name=/^\\$/]:exit"( + "MemberExpression[object.type='Identifier'][object.name=/^\\$[^\\$]/]:exit"( node: StoreMemberExpression, ) { if (storeMemberAccessStack[0]?.node !== node) return diff --git a/tests/fixtures/rules/prefer-destructured-store-props/valid/builtin-vars01-input.svelte b/tests/fixtures/rules/prefer-destructured-store-props/valid/builtin-vars01-input.svelte new file mode 100644 index 000000000..79543c6d5 --- /dev/null +++ b/tests/fixtures/rules/prefer-destructured-store-props/valid/builtin-vars01-input.svelte @@ -0,0 +1,7 @@ +
+ + {#if $$slots.description} +
+ + {/if} +
diff --git a/tests/fixtures/rules/prefer-destructured-store-props/valid/builtin-vars02-input.svelte b/tests/fixtures/rules/prefer-destructured-store-props/valid/builtin-vars02-input.svelte new file mode 100644 index 000000000..cf19d13be --- /dev/null +++ b/tests/fixtures/rules/prefer-destructured-store-props/valid/builtin-vars02-input.svelte @@ -0,0 +1,2 @@ + +