feat: track event seen on relays

fix: dump/clear commands
This commit is contained in:
2024-09-16 10:55:15 +01:00
parent b49144399c
commit 21e88b06cb
13 changed files with 141 additions and 54 deletions

View File

@ -1,4 +1,4 @@
import { NostrEvent, OkResponse, ReqCommand } from "./nostr";
import { OkResponse, ReqCommand, TaggedNostrEvent } from "./nostr";
/**
* A cache relay is an always available local (local network / browser worker) relay
@ -8,12 +8,12 @@ export interface CacheRelay {
/**
* Write event to cache relay
*/
event(ev: NostrEvent): Promise<OkResponse>;
event(ev: TaggedNostrEvent): Promise<OkResponse>;
/**
* Read event from cache relay
*/
query(req: ReqCommand): Promise<Array<NostrEvent>>;
query(req: ReqCommand): Promise<Array<TaggedNostrEvent>>;
/**
* Delete events by filter

View File

@ -107,8 +107,8 @@ export class QueryManager extends EventEmitter<QueryManagerEvents> {
// fetch results from cache first, flag qSend for sync
if (this.#system.cacheRelay) {
const data = await this.#system.cacheRelay.query(["REQ", q.id, ...filters]);
syncFrom = data;
if (data.length > 0) {
syncFrom = data.map(a => ({ ...a, relays: [] }));
this.#log("Adding from cache %s %O", q.id, data);
q.feed.add(syncFrom);
}