// // SPDX-FileCopyrightText: Hadad // SPDX-License-Identifier: Apache-2.0 // import config from '../../config.js'; const tempStorage = new Map(); const activeGenerations = new Map(); export const getStorage = (sessionId) => { const data = tempStorage.get(sessionId); if (data) { data.lastAccess = Date.now(); } return data; }; export const setStorage = (sessionId, data) => { data.lastAccess = Date.now(); tempStorage.set(sessionId, data); }; export const deleteStorage = (sessionId) => { tempStorage.delete(sessionId); activeGenerations.delete(sessionId); }; export const getActiveGeneration = (sessionId) => { return activeGenerations.get(sessionId); }; export const setActiveGeneration = ( sessionId, controller ) => { activeGenerations.set(sessionId, controller); }; export const deleteActiveGeneration = (sessionId) => { activeGenerations.delete(sessionId); }; export const getDefaultData = () => ({ images: [], isGenerating: false, progress: 0, error: null, lastAccess: Date.now() }); export const initCleanup = () => { setInterval(() => { const now = Date.now(); const maxAge = config.storage.maxAge; for (const [key, value] of tempStorage.entries()) { if (!value.lastAccess || now - value.lastAccess > maxAge) { deleteStorage(key); } } }, config.storage.cleanupInterval); };