15 lines
551 B
TypeScript
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
|
|
}
|