UNPKG

@memori.ai/memori-react

Version:

[![npm version](https://img.shields.io/github/package-json/v/memori-ai/memori-react)](https://www.npmjs.com/package/@memori.ai/memori-react) ![Tests](https://github.com/memori-ai/memori-react/workflows/CI/badge.svg?branch=main) ![TypeScript Support](https

66 lines 2.57 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.getNatsConfig = exports.parseNatsConfig = void 0; function readStringField(raw, ...keys) { for (const key of keys) { const value = raw[key]; if (typeof value === 'string' && value.length > 0) { return value; } } return undefined; } function readBooleanField(raw, ...keys) { for (const key of keys) { const value = raw[key]; if (typeof value === 'boolean') { return value; } } return undefined; } function parseNatsConfig(raw) { const url = readStringField(raw, 'url'); const token = readStringField(raw, 'token'); if (!url || !token) { throw new Error('Invalid response from NATS config service'); } const useJetStream = readBooleanField(raw, 'useJetStream', 'use_jetstream'); const stream = readStringField(raw, 'stream', 'streamName', 'stream_name'); const consumer = readStringField(raw, 'consumer', 'consumerName', 'consumer_name', 'durableName', 'durable_name'); const subject = readStringField(raw, 'subject', 'filterSubject', 'filter_subject'); if (useJetStream && !stream) { throw new Error('Invalid response from NATS config service: JetStream enabled but stream missing'); } return { url, token, ...(stream ? { stream } : {}), ...(consumer ? { consumer } : {}), ...(subject ? { subject } : {}), }; } exports.parseNatsConfig = parseNatsConfig; async function getNatsConfig(baseUrl, sessionId, signal) { if (!sessionId) { throw new Error('Missing sessionId for NATS config request'); } const response = await fetch(`${baseUrl}/api/nats?sessionId=${encodeURIComponent(sessionId)}`, { signal }); if (!response.ok) { const errorData = await response.json().catch(() => ({})); switch (response.status) { case 400: throw new Error(errorData.error || 'NATS config error: missing sessionId'); case 404: throw new Error(errorData.error || 'NATS config error: invalid session'); case 500: throw new Error(errorData.error || 'NATS config error: NATS configuration missing'); default: throw new Error(errorData.error || `NATS config error: ${response.status}`); } } const data = (await response.json()); return parseNatsConfig(data); } exports.getNatsConfig = getNatsConfig; //# sourceMappingURL=getNatsConfig.js.map