From 1361cf57e1139c44f0d9aa427e79c10fccbfdb20 Mon Sep 17 00:00:00 2001 From: Sasha <118575614+weboko@users.noreply.github.com> Date: Thu, 4 Sep 2025 08:12:59 +0200 Subject: [PATCH] fix: align libp2p types --- packages/core/src/lib/filter/filter.ts | 9 ++++--- .../lib/stream_manager/stream_manager.spec.ts | 11 ++++----- packages/interfaces/src/waku.ts | 24 ++++++++++--------- 3 files changed, 22 insertions(+), 22 deletions(-) diff --git a/packages/core/src/lib/filter/filter.ts b/packages/core/src/lib/filter/filter.ts index f76203fbfb..57dce18307 100644 --- a/packages/core/src/lib/filter/filter.ts +++ b/packages/core/src/lib/filter/filter.ts @@ -1,5 +1,4 @@ -import type { PeerId } from "@libp2p/interface"; -import type { IncomingStreamData } from "@libp2p/interface-internal"; +import type { PeerId, StreamHandler } from "@libp2p/interface"; import { type ContentTopic, type CoreProtocolResult, @@ -52,7 +51,7 @@ export class FilterCore { public async start(): Promise { try { - await this.libp2p.handle(FilterCodecs.PUSH, this.onRequest.bind(this), { + await this.libp2p.handle(FilterCodecs.PUSH, this.onRequest, { maxInboundStreams: 100 }); } catch (e) { @@ -304,7 +303,7 @@ export class FilterCore { }; } - private onRequest(streamData: IncomingStreamData): void { + private onRequest: StreamHandler = (streamData) => { const { connection, stream } = streamData; const { remotePeer } = connection; log.info(`Received message from ${remotePeer.toString()}`); @@ -345,5 +344,5 @@ export class FilterCore { } catch (e) { log.error("Error decoding message", e); } - } + }; } diff --git a/packages/core/src/lib/stream_manager/stream_manager.spec.ts b/packages/core/src/lib/stream_manager/stream_manager.spec.ts index 046efac2a0..c70adfbe5a 100644 --- a/packages/core/src/lib/stream_manager/stream_manager.spec.ts +++ b/packages/core/src/lib/stream_manager/stream_manager.spec.ts @@ -34,7 +34,7 @@ describe("StreamManager", () => { createMockStream({ id: "1", protocol: MULTICODEC, writeStatus }) ]; - streamManager["libp2p"]["connectionManager"]["getConnections"] = ( + (streamManager["libp2p"]["connectionManager"] as any).getConnections = ( _peerId: PeerId | undefined ) => [con1]; @@ -46,7 +46,7 @@ describe("StreamManager", () => { }); it("should return undefined if no connection provided", async () => { - streamManager["libp2p"]["connectionManager"]["getConnections"] = ( + (streamManager["libp2p"]["connectionManager"] as any).getConnections = ( _peerId: PeerId | undefined ) => []; @@ -70,7 +70,7 @@ describe("StreamManager", () => { ); con1.newStream = newStreamSpy; - streamManager["libp2p"]["connectionManager"]["getConnections"] = ( + (streamManager["libp2p"]["connectionManager"] as any).getConnections = ( _peerId: PeerId | undefined ) => [con1]; @@ -97,7 +97,7 @@ describe("StreamManager", () => { ); con1.newStream = newStreamSpy; - streamManager["libp2p"]["connectionManager"]["getConnections"] = ( + (streamManager["libp2p"]["connectionManager"] as any).getConnections = ( _peerId: PeerId | undefined ) => [con1]; @@ -148,7 +148,7 @@ describe("StreamManager", () => { writeStatus: "writable" }) ]; - streamManager["libp2p"]["connectionManager"]["getConnections"] = ( + (streamManager["libp2p"]["connectionManager"] as any).getConnections = ( _id: PeerId | undefined ) => [con1]; @@ -178,7 +178,6 @@ function createMockConnection(options: MockConnectionOptions = {}): Connection { } } as Connection; } - type MockStreamOptions = { id?: string; protocol?: string; diff --git a/packages/interfaces/src/waku.ts b/packages/interfaces/src/waku.ts index 71914755f7..25005ac67b 100644 --- a/packages/interfaces/src/waku.ts +++ b/packages/interfaces/src/waku.ts @@ -25,10 +25,12 @@ export type CreateEncoderParams = CreateDecoderParams & { ephemeral?: boolean; }; -export enum WakuEvent { - Connection = "waku:connection", - Health = "waku:health" -} +export const WakuEvent = { + Connection: "waku:connection", + Health: "waku:health" +} as const; + +export type WakuEvent = (typeof WakuEvent)[keyof typeof WakuEvent]; export interface IWakuEvents { /** @@ -36,22 +38,22 @@ export interface IWakuEvents { * * @example * ```typescript - * waku.addEventListener(WakuEvent.Connection, (event) => { + * waku.events.addEventListener("waku:connection", (event) => { * console.log(event.detail); // true if connected, false if disconnected * }); */ - [WakuEvent.Connection]: CustomEvent; + "waku:connection": CustomEvent; /** * Emitted when the health status changes. * * @example * ```typescript - * waku.addEventListener(WakuEvent.Health, (event) => { + * waku.events.addEventListener("waku:health", (event) => { * console.log(event.detail); // 'Unhealthy', 'MinimallyHealthy', or 'SufficientlyHealthy' * }); */ - [WakuEvent.Health]: CustomEvent; + "waku:health": CustomEvent; } export type IWakuEventEmitter = TypedEventEmitter; @@ -66,12 +68,12 @@ export interface IWaku { /** * Emits events related to the Waku node. * Those are: - * - WakuEvent.Connection - * - WakuEvent.Health + * - "waku:connection" + * - "waku:health" * * @example * ```typescript - * waku.events.addEventListener(WakuEvent.Connection, (event) => { + * waku.events.addEventListener("waku:connection", (event) => { * console.log(event.detail); // true if connected, false if disconnected * }); * ```