npm.io
1.0.22 • Published 4 years ago

msek-rabbitmq-lib

Licence
ISC
Version
1.0.22
Deps
2
Size
29 kB
Vulns
0
Weekly
0

️ MSEK - Rabbitmq Library

How to use?

Run 'npm i msek-rabbitmq-lib' in your Microservice.

Set environment variable 'SERVICE_NAME'. for an example SERVICE_NAME=msek-accounting-service. Set environment variable 'RABBITMQ_URL'. or it will be 'amqp://localhost' by default.

import

import DomainEvent, {MsekRabbitmq} from 'msek-rabbitmq-lib';

export default class AccountActivatedEvent extends DomainEvent {
    constructor(account: Account) {
        super(
            account.AccountingSystemId.getMerchantCode(),   // userId
            account.Id.RawId,                               // aggregateId
            'account',                                      // aggregateType
            'account.activated',                            // eventName
            {                                               // context
                accountId: account.Id.RawId,
                externalId: account.ExternalId,
                name: account.Name,
                balance: account.Balance.Amount,
                currency: account.Balance.Currency,
                accountingSystemId: account.AccountingSystemId.RawId
            });
    }
}

// Publish domain event
const published = await MsekRabbitmq.rabbitmq.publish(eventName, domainEvent);

// Register consumer in bootstrap
private async registerConsumers() {
    await MsekRabbitmq.rabbitmq.consume(eventName, async (message: any) => {
    });
}

Note: You may need to install the amqplib types if you using typescript 'npm i --save-dev @types/amqplib'.