diff options
| author | syuilo <Syuilotan@yahoo.co.jp> | 2021-11-12 02:02:25 +0900 |
|---|---|---|
| committer | syuilo <Syuilotan@yahoo.co.jp> | 2021-11-12 02:02:25 +0900 |
| commit | 0e4a111f81cceed275d9bec2695f6e401fb654d8 (patch) | |
| tree | 40874799472fa07416f17b50a398ac33b7771905 /src/misc/cache.ts | |
| parent | update deps (diff) | |
| download | sharkey-0e4a111f81cceed275d9bec2695f6e401fb654d8.tar.gz sharkey-0e4a111f81cceed275d9bec2695f6e401fb654d8.tar.bz2 sharkey-0e4a111f81cceed275d9bec2695f6e401fb654d8.zip | |
refactoring
Resolve #7779
Diffstat (limited to 'src/misc/cache.ts')
| -rw-r--r-- | src/misc/cache.ts | 43 |
1 files changed, 0 insertions, 43 deletions
diff --git a/src/misc/cache.ts b/src/misc/cache.ts deleted file mode 100644 index 71fbbd8a4c..0000000000 --- a/src/misc/cache.ts +++ /dev/null @@ -1,43 +0,0 @@ -export class Cache<T> { - private cache: Map<string | null, { date: number; value: T; }>; - private lifetime: number; - - constructor(lifetime: Cache<never>['lifetime']) { - this.cache = new Map(); - this.lifetime = lifetime; - } - - public set(key: string | null, value: T): void { - this.cache.set(key, { - date: Date.now(), - value - }); - } - - public get(key: string | null): T | undefined { - const cached = this.cache.get(key); - if (cached == null) return undefined; - if ((Date.now() - cached.date) > this.lifetime) { - this.cache.delete(key); - return undefined; - } - return cached.value; - } - - public delete(key: string | null) { - this.cache.delete(key); - } - - public async fetch(key: string | null, fetcher: () => Promise<T>): Promise<T> { - const cachedValue = this.get(key); - if (cachedValue !== undefined) { - // Cache HIT - return cachedValue; - } - - // Cache MISS - const value = await fetcher(); - this.set(key, value); - return value; - } -} |