24 lines
764 B
TypeScript
24 lines
764 B
TypeScript
import {FOLLOWS, asDecryptedEvent, readList} from "@welshman/util"
|
|
import {TrustedEvent, PublishedList} from "@welshman/util"
|
|
import {deriveEventsMapped} from "@welshman/store"
|
|
import {repository} from "./core.js"
|
|
import {collection} from "./collection.js"
|
|
import {makeOutboxLoader} from "./relaySelections.js"
|
|
|
|
export const follows = deriveEventsMapped<PublishedList>(repository, {
|
|
filters: [{kinds: [FOLLOWS]}],
|
|
itemToEvent: item => item.event,
|
|
eventToItem: (event: TrustedEvent) => readList(asDecryptedEvent(event)),
|
|
})
|
|
|
|
export const {
|
|
indexStore: followsByPubkey,
|
|
deriveItem: deriveFollows,
|
|
loadItem: loadFollows,
|
|
} = collection({
|
|
name: "follows",
|
|
store: follows,
|
|
getKey: follows => follows.event.pubkey,
|
|
load: makeOutboxLoader(FOLLOWS)
|
|
})
|