pub-sub.d.ts 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. /// <reference types="node" />
  2. import { RedisCommandArgument } from "../commands";
  3. export declare enum PubSubType {
  4. CHANNELS = "CHANNELS",
  5. PATTERNS = "PATTERNS",
  6. SHARDED = "SHARDED"
  7. }
  8. export type PubSubListener<RETURN_BUFFERS extends boolean = false> = <T extends RETURN_BUFFERS extends true ? Buffer : string>(message: T, channel: T) => unknown;
  9. export interface ChannelListeners {
  10. unsubscribing: boolean;
  11. buffers: Set<PubSubListener<true>>;
  12. strings: Set<PubSubListener<false>>;
  13. }
  14. export type PubSubTypeListeners = Map<string, ChannelListeners>;
  15. export type PubSubCommand = ReturnType<typeof PubSub.prototype.subscribe | typeof PubSub.prototype.unsubscribe | typeof PubSub.prototype.extendTypeListeners>;
  16. export declare class PubSub {
  17. #private;
  18. static isStatusReply(reply: Array<Buffer>): boolean;
  19. static isShardedUnsubscribe(reply: Array<Buffer>): boolean;
  20. get isActive(): boolean;
  21. subscribe<T extends boolean>(type: PubSubType, channels: string | Array<string>, listener: PubSubListener<T>, returnBuffers?: T): {
  22. args: RedisCommandArgument[];
  23. channelsCounter: number;
  24. resolve: () => void;
  25. reject: () => void;
  26. } | undefined;
  27. extendChannelListeners(type: PubSubType, channel: string, listeners: ChannelListeners): {
  28. args: (string | Buffer)[];
  29. channelsCounter: number;
  30. resolve: () => number;
  31. reject: () => void;
  32. } | undefined;
  33. extendTypeListeners(type: PubSubType, listeners: PubSubTypeListeners): {
  34. args: RedisCommandArgument[];
  35. channelsCounter: number;
  36. resolve: () => number;
  37. reject: () => void;
  38. } | undefined;
  39. unsubscribe<T extends boolean>(type: PubSubType, channels?: string | Array<string>, listener?: PubSubListener<T>, returnBuffers?: T): {
  40. args: RedisCommandArgument[];
  41. channelsCounter: number;
  42. resolve: () => void;
  43. reject: undefined;
  44. } | undefined;
  45. reset(): void;
  46. resubscribe(): Array<PubSubCommand>;
  47. handleMessageReply(reply: Array<Buffer>): boolean;
  48. removeShardedListeners(channel: string): ChannelListeners;
  49. getTypeListeners(type: PubSubType): PubSubTypeListeners;
  50. }