UNPKG

@nostr-relay/wot-guard

Version:
46 lines 1.4 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.Pool = void 0; const relay_1 = require("./relay"); class Pool { constructor(urls, { agent } = {}) { this.urls = urls; this.relays = []; this.agent = agent; } async init() { if (this.relays.length) { this.relays.forEach(relay => relay.destroy()); this.relays = []; } await Promise.allSettled(this.urls.map(async (url) => { const relay = new relay_1.Relay(url, { agent: this.agent }); await relay.init(); this.relays.push(relay); })); return this.relays.map(relay => relay.url); } destroy() { this.relays.forEach(relay => relay.destroy()); this.relays = []; } async fetchEvents(filter) { const events = []; await Promise.allSettled(this.relays.map(async (relay) => { const res = await relay.fetchEvents(filter); events.push(...res); })); const eventIdSet = new Set(); const uniqueEvents = []; events.forEach(event => { if (eventIdSet.has(event.id)) { return; } eventIdSet.add(event.id); uniqueEvents.push(event); }); return uniqueEvents; } } exports.Pool = Pool; //# sourceMappingURL=pool.js.map