esa-cli
Version:
A CLI for operating Alibaba Cloud ESA EdgeRoutine (Edge Functions).
34 lines (33 loc) • 865 B
JavaScript
class CacheService {
constructor() {
this.store = new Map();
this.maxQuota = 100 * 1024 * 1024;
}
put(key, serializedResponse) {
const expires = serializedResponse.ttl === 0
? Infinity
: Date.now() + serializedResponse.ttl * 1000;
this.store.set(key, {
serializedResponse,
expires: expires,
lastUsed: Date.now()
});
}
get(key) {
const entry = this.store.get(key);
if (!entry || Date.now() > entry.expires) {
return null;
}
entry.lastUsed = Date.now();
return entry;
}
delete(key) {
return this.deleteEntry(key);
}
deleteEntry(key) {
if (!this.store.has(key))
return false;
return this.store.delete(key);
}
}
export default CacheService;