summaryrefslogtreecommitdiff
path: root/u/leftpadesque/memoize.ts
diff options
context:
space:
mode:
Diffstat (limited to 'u/leftpadesque/memoize.ts')
-rw-r--r--u/leftpadesque/memoize.ts14
1 files changed, 0 insertions, 14 deletions
diff --git a/u/leftpadesque/memoize.ts b/u/leftpadesque/memoize.ts
deleted file mode 100644
index 541bd20..0000000
--- a/u/leftpadesque/memoize.ts
+++ /dev/null
@@ -1,14 +0,0 @@
-import type { Callable } from '@emprespresso/pengueno';
-
-export const memoize = <R, F extends Callable<R>>(fn: F): F => {
- const cache = new Map<string, R>();
- return ((...args: unknown[]): R => {
- const key = JSON.stringify(args);
- if (cache.has(key)) {
- return cache.get(key)!;
- }
- const res = fn.apply(args);
- cache.set(key, res);
- return res;
- }) as F;
-};