summaryrefslogtreecommitdiff
path: root/src/misc/cache.ts
diff options
context:
space:
mode:
authorsyuilo <Syuilotan@yahoo.co.jp>2021-11-12 02:02:25 +0900
committersyuilo <Syuilotan@yahoo.co.jp>2021-11-12 02:02:25 +0900
commit0e4a111f81cceed275d9bec2695f6e401fb654d8 (patch)
tree40874799472fa07416f17b50a398ac33b7771905 /src/misc/cache.ts
parentupdate deps (diff)
downloadsharkey-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.ts43
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;
- }
-}