fix: events
This commit is contained in:
@ -1,14 +1,14 @@
|
|||||||
import { v4 as uuid } from "uuid";
|
import { v4 as uuid } from "uuid";
|
||||||
import debug from "debug";
|
import debug from "debug";
|
||||||
import WebSocket from "isomorphic-ws";
|
import WebSocket from "isomorphic-ws";
|
||||||
import { ExternalStore, unixNowMs, dedupe } from "@snort/shared";
|
import { unixNowMs, dedupe } from "@snort/shared";
|
||||||
|
import EventEmitter from "eventemitter3";
|
||||||
|
|
||||||
import { DefaultConnectTimeout } from "./const";
|
import { DefaultConnectTimeout } from "./const";
|
||||||
import { ConnectionStats } from "./connection-stats";
|
import { ConnectionStats } from "./connection-stats";
|
||||||
import { NostrEvent, ReqCommand, ReqFilter, TaggedNostrEvent, u256 } from "./nostr";
|
import { NostrEvent, ReqCommand, ReqFilter, TaggedNostrEvent, u256 } from "./nostr";
|
||||||
import { RelayInfo } from "./relay-info";
|
import { RelayInfo } from "./relay-info";
|
||||||
import EventKind from "./event-kind";
|
import EventKind from "./event-kind";
|
||||||
import EventEmitter from "events";
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Relay settings
|
* Relay settings
|
||||||
@ -55,12 +55,7 @@ interface ConnectionEvents {
|
|||||||
notice: (msg: string) => void;
|
notice: (msg: string) => void;
|
||||||
}
|
}
|
||||||
|
|
||||||
export declare interface Connection {
|
export class Connection extends EventEmitter<ConnectionEvents> {
|
||||||
on<U extends keyof ConnectionEvents>(event: U, listener: ConnectionEvents[U]): this;
|
|
||||||
once<U extends keyof ConnectionEvents>(event: U, listener: ConnectionEvents[U]): this;
|
|
||||||
}
|
|
||||||
|
|
||||||
export class Connection extends EventEmitter {
|
|
||||||
#log: debug.Debugger;
|
#log: debug.Debugger;
|
||||||
#ephemeralCheck?: ReturnType<typeof setInterval>;
|
#ephemeralCheck?: ReturnType<typeof setInterval>;
|
||||||
#activity: number = unixNowMs();
|
#activity: number = unixNowMs();
|
||||||
@ -243,7 +238,7 @@ export class Connection extends EventEmitter {
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case "NOTICE": {
|
case "NOTICE": {
|
||||||
this.emit("notice", msg[1]);
|
this.emit("notice", msg[1] as string);
|
||||||
this.#log(`NOTICE: ${msg[1]}`);
|
this.#log(`NOTICE: ${msg[1]}`);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
import debug from "debug";
|
import debug from "debug";
|
||||||
import EventEmitter from "events";
|
import EventEmitter from "eventemitter3";
|
||||||
|
|
||||||
import { unwrap, sanitizeRelayUrl, FeedCache, removeUndefined } from "@snort/shared";
|
import { unwrap, sanitizeRelayUrl, FeedCache, removeUndefined } from "@snort/shared";
|
||||||
import { NostrEvent, TaggedNostrEvent } from "./nostr";
|
import { NostrEvent, TaggedNostrEvent } from "./nostr";
|
||||||
@ -32,15 +32,10 @@ interface NostrSystemEvents {
|
|||||||
event: (ev: TaggedNostrEvent) => void;
|
event: (ev: TaggedNostrEvent) => void;
|
||||||
}
|
}
|
||||||
|
|
||||||
export declare interface NostrSystem {
|
|
||||||
on<U extends keyof NostrSystemEvents>(event: U, listener: NostrSystemEvents[U]): this;
|
|
||||||
once<U extends keyof NostrSystemEvents>(event: U, listener: NostrSystemEvents[U]): this;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Manages nostr content retrieval system
|
* Manages nostr content retrieval system
|
||||||
*/
|
*/
|
||||||
export class NostrSystem extends EventEmitter implements SystemInterface {
|
export class NostrSystem extends EventEmitter<NostrSystemEvents> implements SystemInterface {
|
||||||
#log = debug("System");
|
#log = debug("System");
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -1,12 +1,12 @@
|
|||||||
import { v4 as uuid } from "uuid";
|
import { v4 as uuid } from "uuid";
|
||||||
import debug from "debug";
|
import debug from "debug";
|
||||||
|
import EventEmitter from "eventemitter3";
|
||||||
import { unixNowMs, unwrap } from "@snort/shared";
|
import { unixNowMs, unwrap } from "@snort/shared";
|
||||||
|
|
||||||
import { Connection, ReqFilter, Nips, TaggedNostrEvent } from ".";
|
import { Connection, ReqFilter, Nips, TaggedNostrEvent } from ".";
|
||||||
import { NoteStore } from "./note-collection";
|
import { NoteStore } from "./note-collection";
|
||||||
import { BuiltRawReqFilter } from "./request-builder";
|
import { BuiltRawReqFilter } from "./request-builder";
|
||||||
import { eventMatchesFilter } from "./request-matcher";
|
import { eventMatchesFilter } from "./request-matcher";
|
||||||
import EventEmitter from "events";
|
|
||||||
|
|
||||||
interface QueryTraceEvents {
|
interface QueryTraceEvents {
|
||||||
change: () => void;
|
change: () => void;
|
||||||
@ -14,15 +14,10 @@ interface QueryTraceEvents {
|
|||||||
eose: (id: string, connId: string, wasForced: boolean) => void;
|
eose: (id: string, connId: string, wasForced: boolean) => void;
|
||||||
}
|
}
|
||||||
|
|
||||||
export declare interface QueryTrace {
|
|
||||||
on<U extends keyof QueryTraceEvents>(event: U, listener: QueryTraceEvents[U]): this;
|
|
||||||
once<U extends keyof QueryTraceEvents>(event: U, listener: QueryTraceEvents[U]): this;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Tracing for relay query status
|
* Tracing for relay query status
|
||||||
*/
|
*/
|
||||||
export class QueryTrace extends EventEmitter {
|
export class QueryTrace extends EventEmitter<QueryTraceEvents> {
|
||||||
readonly id: string;
|
readonly id: string;
|
||||||
readonly start: number;
|
readonly start: number;
|
||||||
sent?: number;
|
sent?: number;
|
||||||
@ -122,15 +117,10 @@ interface QueryEvents {
|
|||||||
trace: (report: TraceReport) => void;
|
trace: (report: TraceReport) => void;
|
||||||
}
|
}
|
||||||
|
|
||||||
export declare interface Query {
|
|
||||||
on<U extends keyof QueryEvents>(event: U, listener: QueryEvents[U]): this;
|
|
||||||
once<U extends keyof QueryEvents>(event: U, listener: QueryEvents[U]): this;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Active or queued query on the system
|
* Active or queued query on the system
|
||||||
*/
|
*/
|
||||||
export class Query extends EventEmitter implements QueryBase {
|
export class Query extends EventEmitter<QueryEvents> implements QueryBase {
|
||||||
/**
|
/**
|
||||||
* Uniquie ID of this query
|
* Uniquie ID of this query
|
||||||
*/
|
*/
|
||||||
|
Reference in New Issue
Block a user