Spaces:
Running
Running
| // | |
| // SPDX-FileCopyrightText: Hadad <[email protected]> | |
| // 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); | |
| }; |