blob: 9cd6d0e7005880f3e4d89b7c801f600782475edd (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
|
// Customized HMR-safe stores
// Based off https://github.com/svitejs/svite/blob/ddec6b9/packages/playground/hmr/src/stores/hmr-stores.js
import { writable } from 'svelte/store'
/**
* @type { Record<string, import('svelte/store').Writable<any>> }
*/
let stores = {}
/**
* @template T
* @param { string } id
* @param { T } initialValue
* @returns { import('svelte/store').Writable<T> }
*/
export function getStore(id, initialValue) {
return stores[id] || (stores[id] = writable(initialValue))
}
// preserve the store across HMR updates
if (import.meta.hot) {
if (import.meta.hot.data.stores) {
stores = import.meta.hot.data.stores
}
import.meta.hot.accept()
import.meta.hot.dispose(() => {
import.meta.hot.data.stores = stores
})
}
|