UNPKG

nest-nsq-transport

Version:
32 lines (31 loc) 1.52 kB
import { Logger } from '@nestjs/common'; import { CustomTransportStrategy, MessageHandler, Server, Deserializer, IncomingEvent } from '@nestjs/microservices'; import { Message, ReaderConnectionConfigOptions } from 'nsqjs'; import { NSQPattern } from './pattern'; type RequeueParams = Parameters<(typeof Message.prototype)['requeue']>; export interface TopicChannelOptions extends ReaderConnectionConfigOptions { requeueParams?: RequeueParams | ((message: Message, pattern: NSQPattern) => RequeueParams); } export interface NSQStrategyOptions { defaultChannelOptions?: TopicChannelOptions; channels?: Record<string, Record<string, TopicChannelOptions>>; deserializer?: Deserializer<Message, IncomingEvent>; } export declare class NSQStrategy extends Server implements CustomTransportStrategy { private readonly opts; protected readonly logger: Logger; private readonly readers; private readonly handlingMessagesWG; private readonly readersSetDeferred; constructor(opts: NSQStrategyOptions); listen(callback?: () => void): Promise<void>; addHandler(pattern: unknown, callback: MessageHandler, isEventHandler?: boolean, extras?: Record<string, unknown>): void; close(): Promise<void>; on<EventKey extends string = string, EventCallback extends Function = Function>(event: EventKey, callback: EventCallback): void; unwrap<T>(): T; private createOrGetReaderFor; private createReaderFor; private getOptionsByPattern; private handleMessage; } export {};