UNPKG

@foxpage/foxpage-manager

Version:

foxpage resource manager

65 lines (64 loc) 1.26 kB
import _LRUCache from 'lru-cache'; import { ResourceCache } from '@foxpage/foxpage-types'; export interface LRUCacheOptions { cloned?: boolean; } /** * lru cache * * @export * @class LRUCache * @implements {ResourceCache<T>} * @template T */ export declare class LRUCache<T> implements ResourceCache<T> { lruCache: _LRUCache<string, T>; opt?: LRUCacheOptions; constructor(maxSize?: number, opt?: LRUCacheOptions); /** * set resource * * @param {string} id * @param {T} resource */ set(id: string, resource: T): void; /** * get resource * * @param {string} id * @return {*} {(T | null | undefined)} */ get(id: string): T | null | undefined; /** * get count * @returns count */ getCurCount(): number; /** * has resource * * @param {string} id * @return {*} {boolean} */ has(id: string): boolean; /** * delete resource * * @param {string} id */ delete(id: string): void; /** * reset * */ destroy(): void; /** * dump * * @return {*} {Array<{ key: string; value: T }>} */ dump(): Array<{ key: string; value: T; }>; }