The events module for nats-jetstream
npm install @abassade/eventsThe @abassade/events package provides a simplified interface for integrating NATS and JetStream messaging into your Node.js applications. This library exposes easy-to-use methods for connecting, publishing, and subscribing to messages, making it straightforward to incorporate these powerful messaging systems into your projects.
``sh`
npm install @abassade/events`
orsh`
yarn add @abassade/events
typescript
import { nats, normalizeSubject } from '@abassade/events';const natsUrl = 'nats://localhost:4222'; // you can replace this by your nats server url (host:port)
const subjects = ["provider.bank.account.created"]; // list of topics
const streamName = "Account-stream"; // stream name
async function start() {
try {
await nats.connect({ servers: "0.0.0.0:4222" });
const jsm = await nats.nc.jetstreamManager();
await nats.setupStream(subjects, streamName, jsm);
} catch (error) {
console.error('Failed to connect to NATS server:', error);
}
}
start();
`
$3
Once connected, you can publish messages to a subject.
`typescript
import { nats, normalizeSubject } from '@abassade/events';
async function start() {
try {
await nats.publish(normalizeSubject("provider.bank.account.created"), {
id: "sdzfsdfz",
account_name: "John Doe",
});
console.log("published successful");
} catch (error) {
console.error('Failed to publish:', error);
}
}
`$3
You can also subscribe to subjects to receive messages.
`typescript
import { nats, normalizeSubject } from '@abassade/events';
async function start() {
const postCreatedHandler = async (event: any, msg: JsMsg) => {
try {
console.log("event>>>", event); // you can make use of the events recieved
msg.ack();
} catch (error) {
console.log(error);
}
};
(async () => {
await nats.subscribe(
normalizeSubject("provider.polaris.account.created"),
postCreatedHandler
);
})();
`API Reference
$3
Establishes a connection to the NATS server.
-
natsUrl: The URL of the NATS server.$3
Publishes a message to the specified subject.
-
subject: The subject to which the message will be published.
- message: The message to publish.$3
Subscribes to the specified subject to receive messages.
-
subject: The subject to subscribe to.
- callback`: A function that will be called with each received message.Contributions are welcome! Please open an issue or submit a pull request on GitHub.
This project is licensed under the MIT License. See the LICENSE file for details.