image / src /services /storageManager.js
hadadrjt's picture
image: Production!
4f33245
raw
history blame
1.41 kB
//
// SPDX-FileCopyrightText: Hadad <hadad@linuxmail.org>
// 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);
};