@gabliam/amqp
Version:
amqp plugin for gabliam
111 lines (110 loc) • 2.97 kB
TypeScript
import { ConsumeOptions, RabbitHandlerOptions, SendOptions } from '../interfaces';
export type HandlerType = 'Listener' | 'Consumer';
/**
* Type of the `RabbitController` decorator / constructor function.
*/
export interface RabbitControllerDecorator {
/**
* Decorator that marks a class to be registred in amqp
*
* @usageNotes
*
* ```typescript
* @RabbitController('/')
* class SampleController {
* @RabbitConsumer('test')
* hello(@Message() msg: MessageAmqp) {
* console.log('Hello');
* }
* }
* ```
*/
(): ClassDecorator;
/**
* see the `@Message` decorator.
*/
new (): any;
}
export declare const RabbitController: RabbitControllerDecorator;
export interface RabbitHandler {
queue: string;
type: HandlerType;
consumeOptions?: ConsumeOptions;
sendOptions?: SendOptions;
sendOptionsError?: SendOptions;
}
/**
* Type of the `RabbitListener` decorator / constructor function.
*/
export interface RabbitListenerDecorator {
/**
/**
* Decorator that marks a class field as a RabbitListener property and
* supplies configuration metadata.
*
* Registered the method as a consumer. This method cannot reply.
*
* @usageNotes
*
* ```typescript
* @RabbitController('/')
* class SampleController {
* @RabbitListener('test')
* hello(@Message() msg: MessageAmqp) {
* console.log('Hello');
* }
* }
* ```
*
*/
(queue: string, options?: RabbitHandlerOptions): MethodDecorator;
/**
* see the `@RabbitListener` decorator.
*/
new (queue: string, options?: RabbitHandlerOptions): any;
}
/**
* Type of metadata for an `RabbitListener` property.
*/
export interface RabbitListener extends RabbitHandler {
type: 'Listener';
}
export declare const RabbitListener: RabbitListenerDecorator;
/**
* Type of the `RabbitConsumer` decorator / constructor function.
*/
export interface RabbitConsumerDecorator {
/**
/**
* Decorator that marks a class field as a RabbitConsumer property and
* supplies configuration metadata.
*
* Registered the method as a consumer. This method cannot reply.
*
* @usageNotes
*
* ```typescript
* @RabbitController('/')
* class SampleController {
* @RabbitConsumer('test')
* hello(@Message() msg: MessageAmqp) {
* console.log('Hello');
* return 'hi';
* }
* }
* ```
*
*/
(queue: string, options?: RabbitHandlerOptions): MethodDecorator;
/**
* see the `@RabbitConsumer` decorator.
*/
new (queue: string, options?: RabbitHandlerOptions): any;
}
/**
* Type of metadata for an `RabbitConsumer` property.
*/
export interface RabbitConsumer extends RabbitHandler {
type: 'Consumer';
}
export declare const RabbitConsumer: RabbitListenerDecorator;