UNPKG

kubo-rpc-client

Version:
86 lines 2.87 kB
import type { HTTPRPCOptions } from '../index.js'; import type { HTTPRPCClient } from '../lib/core.js'; import type { EventHandler, PeerId, Message } from '@libp2p/interface'; export interface PubSubAPI { /** * Subscribe to a pubsub topic * * @example * ```js * const topic = 'fruit-of-the-day' * const receiveMsg = (msg) => console.log(msg.data.toString()) * * await ipfs.pubsub.subscribe(topic, receiveMsg) * console.log(`subscribed to ${topic}`) * ``` */ subscribe(topic: string, handler: EventHandler<Message>, options?: PubSubSubscribeOptions): Promise<void>; /** * Unsubscribes from a pubsub topic * * @example * ```js * const topic = 'fruit-of-the-day' * const receiveMsg = (msg) => console.log(msg.toString()) * * await ipfs.pubsub.subscribe(topic, receiveMsg) * console.log(`subscribed to ${topic}`) * * await ipfs.pubsub.unsubscribe(topic, receiveMsg) * console.log(`unsubscribed from ${topic}`) * * // Or removing all listeners: * * const topic = 'fruit-of-the-day' * const receiveMsg = (msg) => console.log(msg.toString()) * await ipfs.pubsub.subscribe(topic, receiveMsg); * // Will unsubscribe ALL handlers for the given topic * await ipfs.pubsub.unsubscribe(topic); * ``` */ unsubscribe(topic: string, handler?: EventHandler<Message>, options?: HTTPRPCOptions): Promise<void>; /** * Publish a data message to a pubsub topic * * @example * ```js * const topic = 'fruit-of-the-day' * const msg = new TextEncoder().encode('banana') * * await ipfs.pubsub.publish(topic, msg) * // msg was broadcasted * console.log(`published to ${topic}`) * ``` */ publish(topic: string, data: Uint8Array, options?: HTTPRPCOptions): Promise<void>; /** * Returns the list of subscriptions the peer is subscribed to */ ls(options?: HTTPRPCOptions): Promise<string[]>; /** * Returns the peers that are subscribed to one topic. * * @example * ```js * const topic = 'fruit-of-the-day' * * const peerIds = await ipfs.pubsub.peers(topic) * console.log(peerIds) * ``` */ peers(topic: string, options?: HTTPRPCOptions): Promise<PeerId[]>; setMaxListeners?(max: number): void; } export interface PubSubSubscribeOptions extends HTTPRPCOptions { /** * A callback to receive an error if one occurs during processing * subscription messages. Only supported by ipfs-http-client. */ onError?(err: Error): void; discover?: boolean; } export interface PubsubApiErrorHandlerFn { (err: Error, fatal: boolean, msg?: Message): void; } export declare function createPubsub(client: HTTPRPCClient): PubSubAPI; //# sourceMappingURL=index.d.ts.map