File size: 1,412 Bytes
c34c995 4f33245 c34c995 4f33245 c34c995 4f33245 c34c995 4f33245 c34c995 4f33245 c34c995 4f33245 c34c995 4f33245 c34c995 4f33245 c34c995 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 |
//
// 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);
}; |