@flowfuse/nr-assistant
Version:
FlowFuse Node-RED Expert plugin
34 lines (30 loc) • 763 B
JavaScript
const pendingRequests = {}
function storeRequest (request) {
pruneRequests()
request.ttl = Date.now() + 1000 * 60 * 5 // 5 minute ttl
pendingRequests[request.state] = request
}
function getRequest (state) {
pruneRequests()
const result = pendingRequests[state]
delete pendingRequests[state]
return result
}
function deleteRequest (state) {
pruneRequests()
delete pendingRequests[state]
}
function pruneRequests () {
const now = Date.now()
for (const [key, value] of Object.entries(pendingRequests)) {
if (value.ttl < now) {
delete pendingRequests[key]
}
}
}
module.exports = {
getRequest,
storeRequest,
deleteRequest,
export: () => { return { ...pendingRequests } }
}