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

52 lines (42 loc) 1.44 kB
import type { NatsDialogResponseEvent, NatsErrorEvent, } from './useNatsSession'; /** Backend result codes for missing / expired sessions. */ const SESSION_NOT_FOUND = -101; const SESSION_EXPIRED = -103; const SESSION_NOT_FOUND_MESSAGE = /session\s+with\s+id\s+["']?[^"']+["']?\s+not\s+found/i; function isExpiredResultCode(resultCode?: number): boolean { return ( resultCode === 404 || resultCode === SESSION_EXPIRED || resultCode === SESSION_NOT_FOUND ); } function isExpiredErrorMessage(message?: string): boolean { if (!message) return false; return SESSION_NOT_FOUND_MESSAGE.test(message); } /** True when a NATS `error` event indicates the active session is gone or expired. */ export function isSessionExpiredNatsError(event: NatsErrorEvent): boolean { if (isExpiredResultCode(event.errorCode as number | undefined)) { return true; } if (typeof event.errorCode === 'string') { const code = event.errorCode.toUpperCase(); if (code.includes('SESSION_EXPIRED') || code.includes('SESSION_NOT_FOUND')) { return true; } } return isExpiredErrorMessage(event.errorMessage); } /** True when a NATS dialog response reports a missing or expired session. */ export function isSessionExpiredNatsResponse( event: NatsDialogResponseEvent ): boolean { if (isExpiredResultCode(event.resultCode)) { return true; } return isExpiredErrorMessage(event.resultMessage); }