UNPKG

@valkey/client

Version:

The source code and documentation for this package are in the main [node-redis](https://github.com/redis/node-redis) repo.

51 lines (50 loc) 2.2 kB
/// <reference types="node" /> import { ValkeyCommandArgument } from "../commands"; export declare enum PubSubType { CHANNELS = "CHANNELS", PATTERNS = "PATTERNS", SHARDED = "SHARDED" } export type PubSubListener<RETURN_BUFFERS extends boolean = false> = <T extends RETURN_BUFFERS extends true ? Buffer : string>(message: T, channel: T) => unknown; export interface ChannelListeners { unsubscribing: boolean; buffers: Set<PubSubListener<true>>; strings: Set<PubSubListener<false>>; } export type PubSubTypeListeners = Map<string, ChannelListeners>; export type PubSubCommand = ReturnType<typeof PubSub.prototype.subscribe | typeof PubSub.prototype.unsubscribe | typeof PubSub.prototype.extendTypeListeners>; export declare class PubSub { #private; static isStatusReply(reply: Array<Buffer>): boolean; static isShardedUnsubscribe(reply: Array<Buffer>): boolean; get isActive(): boolean; subscribe<T extends boolean>(type: PubSubType, channels: string | Array<string>, listener: PubSubListener<T>, returnBuffers?: T): { args: ValkeyCommandArgument[]; channelsCounter: number; resolve: () => void; reject: () => void; } | undefined; extendChannelListeners(type: PubSubType, channel: string, listeners: ChannelListeners): { args: (string | Buffer)[]; channelsCounter: number; resolve: () => number; reject: () => void; } | undefined; extendTypeListeners(type: PubSubType, listeners: PubSubTypeListeners): { args: ValkeyCommandArgument[]; channelsCounter: number; resolve: () => number; reject: () => void; } | undefined; unsubscribe<T extends boolean>(type: PubSubType, channels?: string | Array<string>, listener?: PubSubListener<T>, returnBuffers?: T): { args: ValkeyCommandArgument[]; channelsCounter: number; resolve: () => void; reject: undefined; } | undefined; reset(): void; resubscribe(): Array<PubSubCommand>; handleMessageReply(reply: Array<Buffer>): boolean; removeShardedListeners(channel: string): ChannelListeners; getTypeListeners(type: PubSubType): PubSubTypeListeners; }