Add blossom server collections

This commit is contained in:
Jon Staab
2025-04-29 14:30:12 -07:00
parent dcf8569376
commit a42ee30066
5 changed files with 67 additions and 41 deletions
+22
View File
@@ -0,0 +1,22 @@
import {BLOSSOM_SERVERS, asDecryptedEvent, readList} from "@welshman/util"
import {TrustedEvent, PublishedList} from "@welshman/util"
import {deriveEventsMapped, collection} from "@welshman/store"
import {repository} from "./core.js"
import {makeOutboxLoader} from "./relaySelections.js"
export const blossomServers = deriveEventsMapped<PublishedList>(repository, {
filters: [{kinds: [BLOSSOM_SERVERS]}],
itemToEvent: item => item.event,
eventToItem: (event: TrustedEvent) => readList(asDecryptedEvent(event)),
})
export const {
indexStore: blossomServersByPubkey,
deriveItem: deriveBlossomServers,
loadItem: loadBlossomServers,
} = collection({
name: "blossomServers",
store: blossomServers,
getKey: blossomServers => blossomServers.event.pubkey,
load: makeOutboxLoader(BLOSSOM_SERVERS),
})