nest-nsq-transport
Version:
NestJS microservice transport for NSQ
32 lines (31 loc) • 1.52 kB
TypeScript
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 {};