UNPKG

@n8n/n8n-nodes-langchain

Version:
61 lines 1.89 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.SessionManager = void 0; class SessionManager { constructor(store) { this.store = store; this.sessions = {}; } async registerSession(sessionId, server, transport, tools) { if (!sessionId) return; await this.store.register(sessionId); this.sessions[sessionId] = { sessionId, server, transport, lastActivityAt: Date.now() }; if (tools) { this.store.setTools(sessionId, tools); } } touch(sessionId) { const session = this.sessions[sessionId]; if (session) { session.lastActivityAt = Date.now(); } } getIdleSessions(idleTtlMs, now = Date.now()) { return Object.values(this.sessions) .filter((session) => now - session.lastActivityAt >= idleTtlMs) .map((session) => session.sessionId); } async destroySession(sessionId) { const session = this.sessions[sessionId]; await this.store.unregister(sessionId); delete this.sessions[sessionId]; await session?.server.close().catch(() => { }); } getSession(sessionId) { return this.sessions[sessionId]; } getTransport(sessionId) { return this.sessions[sessionId]?.transport; } getServer(sessionId) { return this.sessions[sessionId]?.server; } async isSessionValid(sessionId) { return await this.store.validate(sessionId); } getTools(sessionId) { return this.store.getTools(sessionId); } setTools(sessionId, tools) { this.store.setTools(sessionId, tools); } setStore(store) { this.store = store; } getStore() { return this.store; } } exports.SessionManager = SessionManager; //# sourceMappingURL=SessionManager.js.map