@sensedier/nest-aws-amqp
v1.3.5
Published
NestJS module for AWS amqp implementation
Downloads
107
Readme
AWS AMQP Module for NestJs
This plugin is an easy-to-use implementation for sending messages to SNS topics and for listening to SQS queues in NestJs.
How to send messages to SNS
Implement message provider
Implement this module AmqpMessageAdapter:
import { Injectable } from "@nestjs/common";
import {
SendMessageOptions,
AmqpMessageAdapter,
} from "@sensedier/nest-aws-amqp";
import { LetterDto } from "@sensedier/nest-aws-amqp/dist/infra/domain/dtos/letterDto";
@Injectable()
export class MessageProvider {
constructor(private readonly amqpMessageAdapter: AmqpMessageAdapter) {}
sendMessage<T>(options: SendMessageOptions<LetterDto<T>>): void {
this.amqpMessageAdapter.sendMessage(options);
}
}
Register module
Register this package module and provide/export the implemented MessageProvider:
import { Module } from "@nestjs/common";
import { NestAwsAmqpModule } from "@sensedier/nest-aws-amqp";
import { MessageProvider } from "./messageProvider";
@Module({
imports: [NestAwsAmqpModule.forRoot()],
providers: [MessageProvider],
exports: [MessageProvider],
})
export class MessageProviderModule {}
Usage example
// ...imports...
@Injectable()
export class FooClass {
constructor(private messageProvider: MessageProvider) {}
sendSomeMessage(snsTopicArn: string, payload: BarDto): void {
const transactionId: string = "foo-bar-id";
const message = new LetterDto<BarDto>(payload, transactionId);
this.messageProvider.sendMessage({
topicArn: snsTopicArn,
message,
});
}
}
How to publish
After upgrading package.json version number, run the following commands below:
- npm install
- npm run build
- npm publish
npm link below