https://github.com/samsoft00/node-event-manager
Node Event Manager for both internal and external events e.g Azure Service Bus, RabbitMQ, etc.
https://github.com/samsoft00/node-event-manager
amqp azure-service-bus emitter event event-driven node-eventemitter nodejs rabbitmq servicebus-queue
Last synced: 6 months ago
JSON representation
Node Event Manager for both internal and external events e.g Azure Service Bus, RabbitMQ, etc.
- Host: GitHub
- URL: https://github.com/samsoft00/node-event-manager
- Owner: samsoft00
- Created: 2020-05-09T13:13:05.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2020-05-23T05:54:32.000Z (over 5 years ago)
- Last Synced: 2025-02-10T00:44:30.569Z (8 months ago)
- Topics: amqp, azure-service-bus, emitter, event, event-driven, node-eventemitter, nodejs, rabbitmq, servicebus-queue
- Language: JavaScript
- Homepage:
- Size: 44.9 KB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# NodeJs Event Manager
### Event Manager for both internal and external events e.g Azure Service Bus, RabbitMQ, etc.
## Basic Example
- **Initialize**
```js
// For all the initializations, It can happen on app bootup like:
/* --------- File: app.js --------- */import EventManager from 'nodejs-event-manager';
const myEventManager = EventManager.getInstance();
// Add Azure service bus credentials
const config = {
name: 'samsoft-topic',
subscription: ['samsoft-email-sub', 'samsoft-blockchain-sub'],
connectionString: ''
};myEventManager.initialize(config);
```- **Consumer**
```js
// Note: You must listen before emitting any eventsconst listenEventMgr = EventManager.getInstance();
listenEventMgr.on('samsoft-email-sub', async (payload: EventResponse) => {
console.log({ label: payload.getSource(), body: payload.getBody() });
await payload.complete();
});listenEventMgr.on('samsoft-email-sub:notification:send', async (payload: EventResponse) => {
console.log({ label: payload.getSource(), body: payload.getBody() });
await payload.complete();
});
```- **Producer**
```js
/* --------- File user.activity.service.js --------- */
const senderMgr = EventManager.getInstance();// For external event, use azure or rabbitMq
senderMgr.emit(['samsoft-blockchain-sub', 'samsoft-email-sub'], {
body: { name: 'samuel', profession: 'Software engineer' },
source: 'azure'
});// For internal event handle, use node as source or leave blank
senderMgr.emit('samsoft-blockchain-sub:notification:send', {
body: { name: 'samuel', profession: 'Software engineer' }
source: 'node'
});
```