Skip to content

Commit a6686e4

Browse files
committed
fix: update review comments
1 parent 40ab9b2 commit a6686e4

File tree

3 files changed

+55
-7
lines changed

3 files changed

+55
-7
lines changed

docs/rules/require-store-callbacks-use-set-param.md

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,8 @@ description: "store callbacks must use `set` param"
1111
1212
## :book: Rule Details
1313

14-
This rule disallows if readable / writable store's setter function doesn't use `set` parameter.
14+
This rule disallows if `readable` / `writable` store's setter function doesn't use `set` parameter.<br>
15+
This rule doesn't check `derived` store. Therefore if you set a updated value asynchronously, please don't forget to use `set` function.
1516

1617
<ESLintCodeBlock>
1718

@@ -23,13 +24,22 @@ This rule disallows if readable / writable store's setter function doesn't use `
2324
import { readable, writable, derived } from "svelte/store"
2425
2526
/** ✓ GOOD */
26-
readable(false, (set) => set(true))
27+
readable(null, (set) => {
28+
set(new Date())
29+
const interval = setInterval(() => set(new Date()), 1000)
30+
return () => clearInterval(interval)
31+
})
32+
2733
// `set` is unused but this rule doesn't report.
2834
// For that, please use `no-unused-vars` rule.
2935
// refer: https://eslint.org/docs/latest/rules/no-unused-vars
3036
readable(false, (set) => true)
3137
32-
writable(false, (set) => set(true))
38+
writable(null, (set) => {
39+
set(1)
40+
return () => { /* no more subscribers */ }
41+
})
42+
3343
writable(false, (set) => true)
3444
3545
derived(a, ($a) => $a * 2)

tests/fixtures/rules/require-store-callbacks-use-set-param/valid/test01-input.svelte

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,17 @@
11
<script>
22
import { readable, writable, derived } from "svelte/store"
33
4-
readable(false, (set) => set(true))
5-
readable(false, (set) => true)
4+
readable(null, (set) => {
5+
set(new Date())
6+
const interval = setInterval(() => set(new Date()), 1000)
7+
return () => clearInterval(interval)
8+
})
69
7-
writable(false, (set) => set(true))
8-
writable(false, (set) => true)
10+
readable(false, (set) => true)
11+
writable(null, (set) => {
12+
set(0)
13+
return () => {}
14+
})
915
1016
derived(a, ($a) => $a * 2)
1117
derived(
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
<script>
2+
import { readable, writable, derived } from "svelte/store"
3+
4+
readable(null, function (set) {
5+
set(new Date())
6+
const interval = setInterval(() => set(new Date()), 1000)
7+
return () => clearInterval(interval)
8+
})
9+
10+
readable(false, function (set) {
11+
/* do nothing */
12+
})
13+
14+
writable(0, function (set) {
15+
return () => {}
16+
})
17+
writable(null, function (set) {
18+
set(0)
19+
return () => {}
20+
})
21+
22+
derived(a, function ($a) {
23+
/* do nothing */
24+
})
25+
derived(
26+
a,
27+
function ($a, set) {
28+
setTimeout(() => set($a), 1000)
29+
},
30+
"one moment...",
31+
)
32+
</script>

0 commit comments

Comments
 (0)