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'.