@biorate/amqp
TypeScript icon, indicating that this package has built-in type declarations

1.65.4 • Public • Published

AMQP

AMQP connector

Examples:

import { inject, container, Types, Core } from '@biorate/inversion';
import { IConfig, Config } from '@biorate/config';
import { AmqpConnector } from '@biorate/amqp';

const connectionName = 'amqp';
const channelName = 'test';

export class Root extends Core() {
  @inject(AmqpConnector) public connector: AmqpConnector;
}

container.bind<IConfig>(Types.Config).to(Config).inSingletonScope();
container.bind<AmqpConnector>(AmqpConnector).toSelf().inSingletonScope();
container.bind<Root>(Root).toSelf().inSingletonScope();

container.get<IConfig>(Types.Config).merge({
  Amqp: [
    {
      name: connectionName,
      urls: ['amqp://localhost:5672'],
    },
  ],
});

const root = <Root>container.get<Root>(Root);

(async () => {
  root.connector.createChannel(connectionName, {
    name: channelName,
    json: true,
    setup: async (channel: Channel) => {
      await channel.assertExchange('test-exchange', 'topic');
      await channel.assertQueue('test-queue', { exclusive: true, autoDelete: true });
      await channel.bindQueue('test-queue', 'test-exchange', '#send');
      await channel.consume('test-queue', (data: ConsumeMessage | null) => {
        console.log(data?.content?.toString?.()); // {"test": 1}
      });
    },
  });
  root.connector.channel(channelName)!.publish('test-exchange', '#send', { test: 1 });
})();

Learn

  • Documentation can be found here - docs.

Release History

See the CHANGELOG

License

MIT

Copyright (c) 2021-present Leonid Levkin (llevkin)

Readme

Keywords

Package Sidebar

Install

npm i @biorate/amqp

Weekly Downloads

7

Version

1.65.4

License

MIT

Unpacked Size

139 kB

Total Files

34

Last publish

Collaborators

  • llevkin