const StoreObj = (() => { let memStore = {} let maxAge = 86400000 /** * @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