diff --git a/.changeset/red-jokes-tickle.md b/.changeset/red-jokes-tickle.md new file mode 100644 index 000000000..ab06d7f7a --- /dev/null +++ b/.changeset/red-jokes-tickle.md @@ -0,0 +1,5 @@ +--- +'eslint-plugin-svelte': patch +--- + +chore: update `svelte-eslint-parser` to `v1.0.0-next.12` diff --git a/packages/eslint-plugin-svelte/package.json b/packages/eslint-plugin-svelte/package.json index fad005edf..f3fb2db94 100644 --- a/packages/eslint-plugin-svelte/package.json +++ b/packages/eslint-plugin-svelte/package.json @@ -65,7 +65,7 @@ "postcss-load-config": "^3.1.4", "postcss-safe-parser": "^7.0.0", "semver": "^7.6.3", - "svelte-eslint-parser": "^1.0.0-next.10" + "svelte-eslint-parser": "^1.0.0-next.13" }, "devDependencies": { "@babel/core": "^7.26.0", diff --git a/packages/eslint-plugin-svelte/src/rules/require-store-reactive-access.ts b/packages/eslint-plugin-svelte/src/rules/require-store-reactive-access.ts index 616825059..957a497fc 100644 --- a/packages/eslint-plugin-svelte/src/rules/require-store-reactive-access.ts +++ b/packages/eslint-plugin-svelte/src/rules/require-store-reactive-access.ts @@ -76,10 +76,19 @@ export default createRule('require-store-reactive-access', { if (node.key.name.name !== 'this' && canAcceptStoreAttributeElement(node.parent.parent)) { return; } - // Check for - verifyExpression(node.expression, { - disableFix: node.shorthand - }); + // Check for {}, (v) => {} } /> + if (node.expression?.type === 'SvelteFunctionBindingsExpression') { + for (const expr of node.expression.expressions) { + verifyExpression(expr, { + disableFix: node.shorthand + }); + } + } else { + // Check for + verifyExpression(node.expression, { + disableFix: node.shorthand + }); + } } else if (node.kind === 'Class') { // Check for
verifyExpression(node.expression, { diff --git a/packages/eslint-plugin-svelte/src/types-for-node.ts b/packages/eslint-plugin-svelte/src/types-for-node.ts index 00bf3c670..e67a7c5b3 100644 --- a/packages/eslint-plugin-svelte/src/types-for-node.ts +++ b/packages/eslint-plugin-svelte/src/types-for-node.ts @@ -495,6 +495,12 @@ export type ASTNodeListener = { 'SvelteHTMLComment:exit'?: (node: AST.SvelteHTMLComment & ASTNodeWithParent) => void; SvelteReactiveStatement?: (node: AST.SvelteReactiveStatement & ASTNodeWithParent) => void; 'SvelteReactiveStatement:exit'?: (node: AST.SvelteReactiveStatement & ASTNodeWithParent) => void; + SvelteFunctionBindingsExpression?: ( + node: AST.SvelteFunctionBindingsExpression & ASTNodeWithParent + ) => void; + 'SvelteFunctionBindingsExpression:exit'?: ( + node: AST.SvelteFunctionBindingsExpression & ASTNodeWithParent + ) => void; }; export type ESNodeListener = { @@ -950,4 +956,10 @@ export type SvelteNodeListener = { 'SvelteText:exit'?: (node: AST.SvelteText & ASTNodeWithParent) => void; SvelteHTMLComment?: (node: AST.SvelteHTMLComment & ASTNodeWithParent) => void; 'SvelteHTMLComment:exit'?: (node: AST.SvelteHTMLComment & ASTNodeWithParent) => void; + SvelteFunctionBindingsExpression?: ( + node: AST.SvelteFunctionBindingsExpression & ASTNodeWithParent + ) => void; + 'SvelteFunctionBindingsExpression:exit'?: ( + node: AST.SvelteFunctionBindingsExpression & ASTNodeWithParent + ) => void; };