mirror of
https://github.com/tompro/sattle.git
synced 2026-10-26 01:49:58 +00:00
Formatting
This commit is contained in:
@@ -3,30 +3,30 @@
|
||||
// lazily: merely importing the backup module must never open (or even
|
||||
// reference) a WebSocket.
|
||||
|
||||
import type {Filter as NostrFilter} from 'nostr-tools/filter'
|
||||
import type { Filter as NostrFilter } from 'nostr-tools/filter';
|
||||
|
||||
import type {NostrEvent} from './events'
|
||||
import type { NostrEvent } from './events';
|
||||
|
||||
export type {NostrFilter}
|
||||
export type { NostrFilter };
|
||||
|
||||
// publish throws when the event was accepted NOWHERE
|
||||
export type BackupTransport = {
|
||||
publish: (relays: string[], event: NostrEvent) => Promise<void>
|
||||
fetch: (relays: string[], filter: NostrFilter) => Promise<NostrEvent[]>
|
||||
}
|
||||
publish: (relays: string[], event: NostrEvent) => Promise<void>;
|
||||
fetch: (relays: string[], filter: NostrFilter) => Promise<NostrEvent[]>;
|
||||
};
|
||||
|
||||
export const defaultTransport = async (): Promise<BackupTransport> => {
|
||||
const {SimplePool} = await import('nostr-tools/pool')
|
||||
const pool = new SimplePool()
|
||||
const { SimplePool } = await import('nostr-tools/pool');
|
||||
const pool = new SimplePool();
|
||||
return {
|
||||
publish: async (relays, event) => {
|
||||
const results = await Promise.allSettled(pool.publish(relays, event))
|
||||
const results = await Promise.allSettled(pool.publish(relays, event));
|
||||
// one honest relay keeping the event is enough - addressable events
|
||||
// are re-publishable, and the next debounced publish retries anyway
|
||||
if (!results.some((r) => r.status === 'fulfilled')) {
|
||||
throw new Error('No relay accepted the backup event.')
|
||||
throw new Error('No relay accepted the backup event.');
|
||||
}
|
||||
},
|
||||
fetch: (relays, filter) => pool.querySync(relays, filter),
|
||||
}
|
||||
}
|
||||
};
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user