Files
template-showcase/src/shared/api/nats/server.ts
T

15 lines
551 B
TypeScript

import 'server-only'
import { connect, type NatsConnection } from 'nats'
import { getEnv, modules } from '@/shared/config/env'
let connection: Promise<NatsConnection> | undefined
/** The NATS connection, or `null` when the NATS module is not linked (D13). */
export function nats(): Promise<NatsConnection> | null {
const env = getEnv()
const servers = env.NATS_URL
if (!modules(env).nats || !servers) return null
if (!connection) connection = connect(env.NATS_TOKEN ? { servers, token: env.NATS_TOKEN } : { servers })
return connection
}