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