UNPKG

@linkedmink/multilevel-aging-cache

Version:

Package provides an interface to cache and persist data to Redis, MongoDB, memory

53 lines (52 loc) 1.59 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.MemoryStorageProvider = void 0; /** * A key/value storage system for local memory. This is essentially a wrapper of a Map */ class MemoryStorageProvider { constructor() { this.data = new Map(); this.isPersistable = false; } /** * @param key The key to retrieve * @returns The value if retreiving was successful or null */ get(key) { const value = this.data.get(key); return Promise.resolve(value ?? null); } /** * @param key The key to set * @param value The value to set * @returns The value written if successful or null */ set(key, agedValue) { this.data.set(key, agedValue); return Promise.resolve(agedValue); } /** * @param key The key to the value to delete * @returns The value deleted or boolean (value | true is success). A provider * is not required to return a value */ delete(key) { const kv = this.data.get(key); return Promise.resolve(this.data.delete(key) ? kv : false); } /** * @returns The keys that are currently available in the provider */ keys() { const keys = Array.from(this.data.keys()); return Promise.resolve(keys); } /** * @returns The number of elements in this storage system */ size() { return Promise.resolve(this.data.size); } } exports.MemoryStorageProvider = MemoryStorageProvider;