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