| |
| |
| |
| |
|
|
| 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); |
| }; |