Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- DEFAULT_CACHE_TIME_MS = 262144; // ~5 minutes (closest 1-bin value)
- export default class TimeCache extends Map {
- constructor(cacheTime, seed) {
- super(seed);
- this.cacheTime = cacheTime || DEFAULT_CACHE_TIME_MS;
- }
- set(key, value, cacheTime) {
- super.set(key, {
- expires: Date.now() + (cacheTime || this.cacheTime),
- data: value
- });
- }
- get(key) {
- var entry = super.get(key);
- if (entry && Date.now() < entry.expires) {
- return entry.data;
- } else if (entry) {
- super.delete(key);
- }
- }
- has(key) {
- if (super.has(key)) {
- var entry = super.get(key);
- if (entry && Date.now() < entry.expires) {
- return super.has(key);
- } else if (entry) {
- super.delete(key);
- }
- }
- return false;
- }
- static get [Symbol.species]() { return Map; }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement