Add util to derive repository store, modify tracker to track relays by id
This commit is contained in:
@@ -7,6 +7,17 @@ import {custom} from "@welshman/store"
|
||||
|
||||
export const repository = new Repository<TrustedEvent>()
|
||||
|
||||
export const repositoryStore = custom(setter => {
|
||||
const onUpdate = () => setter(repository)
|
||||
|
||||
onUpdate()
|
||||
repository.on('update', onUpdate)
|
||||
|
||||
return () => repository.off('update', onUpdate)
|
||||
}, {
|
||||
set: (other: Repository) => repository.load(other.dump()),
|
||||
})
|
||||
|
||||
export const relay = new Relay(repository)
|
||||
|
||||
export const tracker = new Tracker()
|
||||
@@ -19,7 +30,7 @@ export const trackerStore = custom(setter => {
|
||||
|
||||
return () => tracker.off('update', onUpdate)
|
||||
}, {
|
||||
set: (other: Tracker) => tracker.load(other.data),
|
||||
set: (other: Tracker) => tracker.load(other.relaysById),
|
||||
})
|
||||
|
||||
export type PartialSubscribeRequest = Partial<SubscribeRequestWithHandlers> & {filters: Filter[]}
|
||||
|
||||
@@ -17,7 +17,15 @@ export const ensurePlaintext = async (e: TrustedEvent) => {
|
||||
const $signer = getSigner(getSession(e.pubkey))
|
||||
|
||||
if ($signer) {
|
||||
const result = await decrypt($signer, e.pubkey, e.content)
|
||||
let result
|
||||
|
||||
try {
|
||||
result = await decrypt($signer, e.pubkey, e.content)
|
||||
} catch (e: any) {
|
||||
if (!String(e).match(/invalid base64/)) {
|
||||
throw e
|
||||
}
|
||||
}
|
||||
|
||||
if (result) {
|
||||
setPlaintext(e, result)
|
||||
|
||||
@@ -161,7 +161,7 @@ export const storageAdapters = {
|
||||
let onUpdate = () =>
|
||||
setter(
|
||||
migrate(
|
||||
Array.from(tracker.data.entries())
|
||||
Array.from(tracker.relaysById.entries())
|
||||
.map(([key, urls]) => ({key, value: Array.from(urls)})),
|
||||
options
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user