@waku/interfaces
Version:
Definition of Waku interfaces
31 lines (30 loc) • 1.05 kB
TypeScript
import type { GossipSub } from "@chainsafe/libp2p-gossipsub";
import type { identify } from "@libp2p/identify";
import type { Libp2p as BaseLibp2p } from "@libp2p/interface";
import type { PingService } from "@libp2p/ping";
import type { Libp2pInit, Libp2pOptions } from "libp2p";
import { IMetadata } from "./metadata.js";
export type Libp2pServices = {
ping: PingService;
metadata?: IMetadata;
pubsub?: GossipSub;
identify: ReturnType<ReturnType<typeof identify>>;
};
export type Libp2pComponents = Parameters<Exclude<Libp2pInit["metrics"], undefined>>[0];
export type Libp2p = BaseLibp2p<Libp2pServices> & {
components: Libp2pComponents;
};
export type CreateLibp2pOptions = Libp2pOptions & {
/**
* Hides WebSocket info message in console.
* @default false
*/
hideWebSocketInfo?: boolean;
pingMaxInboundStreams?: number;
/**
* Applies secure web socket filters.
* @default true
*/
filterMultiaddrs?: boolean;
};
export type Libp2pEventHandler<T> = (e: CustomEvent<T>) => void;