@golevelup/nestjs-rabbitmq
Version:
Badass RabbitMQ addons for NestJS
39 lines • 2.19 kB
TypeScript
import { DiscoveryService } from '@golevelup/nestjs-discovery';
import { DynamicModule, OnApplicationBootstrap, OnApplicationShutdown } from '@nestjs/common';
import { ExternalContextCreator } from '@nestjs/core/helpers/external-context-creator';
import { AmqpConnection } from './amqp/connection';
import { AmqpConnectionManager } from './amqp/connectionManager';
import { ConfigurableModuleClass } from './rabbitmq-module-definition';
import { RabbitRpcParamsFactory } from './rabbitmq.factory';
import { MessageHandlerOptions, RabbitMQConfig, RabbitMQHandlers } from './rabbitmq.interfaces';
/**
* Resolves the list of per-registration handler configs to apply for a given
* handler.
*
* Rules:
* - No lookup key → return `[undefined]` so the handler is registered using
* only the decorator config.
* - Lookup key absent from `handlers` map → return `[]` to skip registration
* and avoid asserting random `amq.gen-*` queues.
* - Lookup key present, value is an array → return the array as-is (zero or
* more registrations).
* - Lookup key present, value is a single object → wrap in a single-element
* array.
*/
export declare function resolveHandlerConfigs(handlers: RabbitMQHandlers, lookupKey: string | undefined): (MessageHandlerOptions | undefined)[];
export declare class RabbitMQModule extends ConfigurableModuleClass implements OnApplicationBootstrap, OnApplicationShutdown {
private readonly discover;
private readonly externalContextCreator;
private readonly rpcParamsFactory;
private readonly connectionManager;
private readonly logger;
private static connectionManager;
private static bootstrapped;
constructor(discover: DiscoveryService, externalContextCreator: ExternalContextCreator, rpcParamsFactory: RabbitRpcParamsFactory, connectionManager: AmqpConnectionManager, config: RabbitMQConfig);
static AmqpConnectionFactory(config: RabbitMQConfig): Promise<AmqpConnection | undefined>;
static attach(connection: AmqpConnection): DynamicModule;
onApplicationShutdown(): Promise<void>;
private setupHandler;
onApplicationBootstrap(): Promise<void>;
}
//# sourceMappingURL=rabbitmq.module.d.ts.map