Modify loader, apply changes to app stores
This commit is contained in:
+16
-14
@@ -1,22 +1,24 @@
|
||||
import {FOLLOWS, asDecryptedEvent, readList} from "@welshman/util"
|
||||
import {TrustedEvent, PublishedList} from "@welshman/util"
|
||||
import {deriveEventsMapped, collection} from "@welshman/store"
|
||||
import {deriveItemsByKey, deriveItems, makeForceLoadItem, makeLoadItem, makeDeriveItem, getter} from "@welshman/store"
|
||||
import {repository} from "./core.js"
|
||||
import {makeOutboxLoader} from "./relaySelections.js"
|
||||
|
||||
export const follows = deriveEventsMapped<PublishedList>(repository, {
|
||||
filters: [{kinds: [FOLLOWS]}],
|
||||
itemToEvent: item => item.event,
|
||||
export const followsByPubkey = deriveItemsByKey({
|
||||
repository,
|
||||
eventToItem: (event: TrustedEvent) => readList(asDecryptedEvent(event)),
|
||||
filters: [{kinds: [FOLLOWS]}],
|
||||
getKey: follows => follows.event.pubkey,
|
||||
})
|
||||
|
||||
export const {
|
||||
indexStore: followsByPubkey,
|
||||
deriveItem: deriveFollows,
|
||||
loadItem: loadFollows,
|
||||
} = collection({
|
||||
name: "follows",
|
||||
store: follows,
|
||||
getKey: follows => follows.event.pubkey,
|
||||
load: makeOutboxLoader(FOLLOWS),
|
||||
})
|
||||
export const follows = deriveItems(followsByPubkey)
|
||||
|
||||
export const getFollowsByPubkey = getter(followsByPubkey)
|
||||
|
||||
export const getFollows = (pubkey: string) => getFollowsByPubkey().get(pubkey)
|
||||
|
||||
export const forceLoadFollows = makeForceLoadItem(makeOutboxLoader(FOLLOWS), getFollows)
|
||||
|
||||
export const loadFollows = makeLoadItem(makeOutboxLoader(FOLLOWS), getFollows)
|
||||
|
||||
export const deriveFollows = makeDeriveItem(followsByPubkey, loadFollows)
|
||||
|
||||
Reference in New Issue
Block a user