const StoreObj = (() => { let memStore = {}; let maxAge = 3600000; /** * @param {string} uuid * @param {object} obj */ const set = (uuid, obj) => { memStore[uuid] = { obj, age: Date.now() + maxAge } } /** * @param {string} uuid */ const get = (uuid) => { if (uuid in memStore) { let s = memStore[uuid]; if (Date.now() < s.age) { s.age = Date.now() + maxAge; return s.obj; } else { delete memStore[uuid]; } } return null; } /** * @param {string} uuid */ const chkKey = (uuid) => { if (uuid in memStore) return true; return false; } /** * @param {string} uuid */ const del = (uuid) => { if (uuid in memStore) delete memStore[uuid]; } const clear = () => { let t = Date.now(); for (var i in memStore) { let s = memStore[i]; if (s.age < t) delete memStore[i]; } } /** * @param {string} uuid if not input return all */ const show = (uuid) => { if (uuid && uuid in memStore) return memStore[uuid]; return memStore; } return {set, get, chkKey, clear, del, show }; })() module.exports = StoreObj;