MCPcopy
hub / github.com/ardatan/graphql-tools / memoize2

Function memoize2

packages/utils/src/memoize.ts:18–42  ·  view source on GitHub ↗
(fn: F)

Source from the content-addressed store, hash-verified

16}
17
18export function memoize2<F extends (a1: any, a2: any) => any>(fn: F): F {
19 const memoize2cache: WeakMap<
20 Record<string, any>,
21 WeakMap<Record<string, any>, any>
22 > = new WeakMap();
23 return function memoized(a1: any, a2: any): any {
24 let cache2 = memoize2cache.get(a1);
25 if (!cache2) {
26 cache2 = new WeakMap();
27 memoize2cache.set(a1, cache2);
28 const newValue = fn(a1, a2);
29 cache2.set(a2, newValue);
30 return newValue;
31 }
32
33 const cachedValue = cache2.get(a2);
34 if (cachedValue === undefined) {
35 const newValue = fn(a1, a2);
36 cache2.set(a2, newValue);
37 return newValue;
38 }
39
40 return cachedValue;
41 } as F;
42}
43
44export function memoize3<F extends (a1: any, a2: any, a3: any) => any>(fn: F): F {
45 const memoize3Cache: WeakMap<

Callers 1

withCancel.tsFile · 0.85

Calls 2

getMethod · 0.65
setMethod · 0.65

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…