Migrate collections to new stores, change some conventions
This commit is contained in:
@@ -1,55 +1,5 @@
|
||||
import {throttle} from "@welshman/lib"
|
||||
import {Repository, Tracker} from "@welshman/net"
|
||||
import {custom} from "@welshman/store"
|
||||
|
||||
export const tracker = new Tracker()
|
||||
|
||||
export const repository = Repository.get()
|
||||
|
||||
// Adapt objects to stores
|
||||
|
||||
export const makeRepositoryStore = ({throttle: t = 300}: {throttle?: number} = {}) =>
|
||||
custom(
|
||||
setter => {
|
||||
let onUpdate = () => setter(repository)
|
||||
|
||||
if (t) {
|
||||
onUpdate = throttle(t, onUpdate)
|
||||
}
|
||||
|
||||
onUpdate()
|
||||
repository.on("update", onUpdate)
|
||||
|
||||
return () => repository.off("update", onUpdate)
|
||||
},
|
||||
{
|
||||
onUpdate: (other: Repository) => repository.load(other.dump()),
|
||||
},
|
||||
)
|
||||
|
||||
export const makeTrackerStore = ({throttle: t = 300}: {throttle?: number} = {}) =>
|
||||
custom(
|
||||
setter => {
|
||||
let onUpdate = () => setter(tracker)
|
||||
|
||||
if (t) {
|
||||
onUpdate = throttle(t, onUpdate)
|
||||
}
|
||||
|
||||
onUpdate()
|
||||
tracker.on("add", onUpdate)
|
||||
tracker.on("remove", onUpdate)
|
||||
tracker.on("load", onUpdate)
|
||||
tracker.on("clear", onUpdate)
|
||||
|
||||
return () => {
|
||||
tracker.off("add", onUpdate)
|
||||
tracker.off("remove", onUpdate)
|
||||
tracker.off("load", onUpdate)
|
||||
tracker.off("clear", onUpdate)
|
||||
}
|
||||
},
|
||||
{
|
||||
onUpdate: (other: Tracker) => tracker.load(other.relaysById),
|
||||
},
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user