@sawakaga/nestjs-amqplib
TypeScript icon, indicating that this package has built-in type declarations

0.2.5 • Public • Published

Nest Powered

Nestjs Amqp

An AMQP connection service for NestJS.

This source code forked from semi-dead useful repository nestjsx/nestjs-amqp authored and maintained by @bashleigh

This repository intents to bring full functionality of amqplib to nestjs module base.

Install

$ npm install --save sawakaga/nestjs-amqp

Basic usage

import { Module } from '@nestjs/common';
import { AmqpModule } from 'nestjs-amqp';

@Module({
  imports: [
    AmqpModule.forRoot({
      name: 'rabbitmq',
      hostname: 'localhost',
      port: 5672,
      username: 'test',
      password: 'test',
    }),
  ],
})
export default class AppModule {}

Connection Decorators

import { Module } from '@nestjs/common';
import { AmqpModule } from 'nestjs-amqp';

@Module({
  imports: [
    AmqpModule.forRoot([
      {
        hostname: 'test:test@localhost',
      },
      {
        username: 'test',
        password: 'test',
        hostname: 'localhost',
        port: 5672,
        protocol: 'amqps',
        name: 'test',
      },
    ]),
  ],
})
export default class ExecutionModule {}
import { Injectable } from '@nestjs/common';
import { InjectAmqpConnection } from 'nestjs-amqp';

@Injectable()
export default class TestService {
  constructor(
    @InjectAmqpConnection('test') private readonly connectionTest, //gets connection with name 'test' defined in module
    @InjectAmqpConnection(0) private readonly connection0, //gets first defined connection without a name
  ) {}
}

Use InjectAmqpConnection without a parameter for default connection

Example publish

import { Injectable, Logger } from '@nestjs/common';
import { InjectAmqpConnection } from 'nestjs-amqp';

@Injectable()
export default class TestProvider {
  constructor(@InjectAmqpConnection() private readonly amqp) {}
  async publish(message: string) {
    await this.amqp.createChannel((err, channel) => {
      if (err != null) {
        Logger.alert(err, 'TestProvider');
      }
      channel.assertQueue('test_queue_name');
      channel.sendToQueue('test_queue_name', message);
    });
  }
}

More information and examples about amqplib can be found here.

Available Options

Name For Default
hostname The host url for the connection localhost
port The port of the amqp host 5672
name The name of the connection default or the array key index [0]
retrys The amount of retry attempts before surrender 3
retryDelay The amount of milliseconds to wait before attempting retry 3000
protocol The protocol for the connection amqp
username The username for the connection quest
password The password for the connection quest
locale The desired locale for error messages en_US
frameMax The size in bytes of the maximum frame allowed over the connection 0
heartbeat The period of the connection heartbeat in seconds 0
vhost What VHost shall be used /

Testing this package

$ jest

Readme

Keywords

Package Sidebar

Install

npm i @sawakaga/nestjs-amqplib

Weekly Downloads

0

Version

0.2.5

License

MIT

Unpacked Size

21.9 kB

Total Files

31

Last publish

Collaborators

  • sawakaga