Skip to content

Commit 2c83156

Browse files
committed
feat: add fixer to require-store-callbacks-use-set-param
Adds a fixer which adds or changes the param to `set`. For example: ```ts // before readable(val, () => ...); readable(val, function () { ... }); // after readable(val, (set) => ...); readable(val, function (set) { ... }); ```
1 parent a62ef2f commit 2c83156

File tree

3 files changed

+33
-1
lines changed

3 files changed

+33
-1
lines changed

packages/eslint-plugin-svelte/src/rules/require-store-callbacks-use-set-param.ts

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ export default createRule('require-store-callbacks-use-set-param', {
88
category: 'Possible Errors',
99
recommended: false
1010
},
11+
fixable: 'code',
1112
schema: [],
1213
messages: {
1314
unexpected: 'Store callbacks must use `set` param.'
@@ -27,7 +28,20 @@ export default createRule('require-store-callbacks-use-set-param', {
2728
context.report({
2829
node: fn,
2930
loc: fn.loc,
30-
messageId: 'unexpected'
31+
messageId: 'unexpected',
32+
fix: (fixer) => {
33+
if (param) {
34+
return fixer.replaceText(param, 'set');
35+
}
36+
const token = context.getSourceCode().getTokenBefore(fn.body, {
37+
filter: (token) => token.type === 'Punctuator' && token.value === '(',
38+
includeComments: false
39+
});
40+
if (token) {
41+
return fixer.insertTextAfter(token, 'set');
42+
}
43+
return [];
44+
}
3145
});
3246
}
3347
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
<script>
2+
import { readable, writable } from 'svelte/store';
3+
4+
readable(false, (set) => true);
5+
readable(false, (set) => true);
6+
7+
writable(false, (set) => true);
8+
writable(false, (set) => true);
9+
</script>
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
<script>
2+
import { readable, writable } from 'svelte/store';
3+
4+
readable(false, function (set) {});
5+
readable(false, (set) => function () {});
6+
7+
writable(false, (set) => function () {});
8+
writable(false, (set) => function () {});
9+
</script>

0 commit comments

Comments
 (0)