Add initial NATS code

This commit is contained in:
2026-01-12 19:45:18 +00:00
parent b1fcea7aea
commit 5653aca823
3 changed files with 58 additions and 0 deletions

26
src/nats.ts Normal file
View File

@@ -0,0 +1,26 @@
import { connect, JSONCodec } from "nats";
import type { ConnectionOptions, NatsConnection, Payload } from "nats";
import { log } from "./logger";
const jc = JSONCodec();
async function getNatsConnection(): Promise<NatsConnection> {
const serverUrl = process.env.MQ_URL || "nats://localhost:4222";
const options: ConnectionOptions = {
servers: serverUrl,
name: `${process.env.HOSTNAME}` || 'local',
reconnect: true,
maxReconnectAttempts: -1,
};
if (process.env.MQ_USER && process.env.MQ_PASS) {
options.user = process.env.MQ_USER;
options.pass = process.env.MQ_PASS;
log("INFO", "NATS: Using username/password authentication");
} else {
log("INFO", "NATS: Connecting without authentication");
}
return await connect(options)
}