system.HandleEvent -> querymanager -> matching queries

This commit is contained in:
Martti Malmi
2024-01-13 22:44:16 +02:00
parent 736c2577db
commit 13b7a16dc7
3 changed files with 12 additions and 4 deletions

View File

@ -8,6 +8,7 @@ import { trimFilters } from "./request-trim";
interface QueryManagerEvents {
change: () => void;
trace: (report: TraceReport) => void;
filters: (req: BuiltRawReqFilter) => void;
}
/**
@ -58,6 +59,7 @@ export class QueryManager extends EventEmitter<QueryManagerEvents> {
q.on("trace", r => this.emit("trace", r));
q.on("filters", fx => {
this.#send(q, fx);
this.emit("filters", fx);
});
this.#queries.set(req.id, q);
@ -66,6 +68,10 @@ export class QueryManager extends EventEmitter<QueryManagerEvents> {
}
}
handleEvent(ev: TaggedNostrEvent) {
this.#queries.forEach(q => q.handleEvent("*", ev));
}
/**
* Async fetch results
*/