diff options
Diffstat (limited to 'school/node_modules/graphql/jsutils/memoize3.js.flow')
-rw-r--r-- | school/node_modules/graphql/jsutils/memoize3.js.flow | 39 |
1 files changed, 0 insertions, 39 deletions
diff --git a/school/node_modules/graphql/jsutils/memoize3.js.flow b/school/node_modules/graphql/jsutils/memoize3.js.flow deleted file mode 100644 index cd4ccd5..0000000 --- a/school/node_modules/graphql/jsutils/memoize3.js.flow +++ /dev/null @@ -1,39 +0,0 @@ -// @flow strict -/** - * Memoizes the provided three-argument function. - */ -export default function memoize3< - A1: { ... } | $ReadOnlyArray<mixed>, - A2: { ... } | $ReadOnlyArray<mixed>, - A3: { ... } | $ReadOnlyArray<mixed>, - R: mixed, ->(fn: (A1, A2, A3) => R): (A1, A2, A3) => R { - let cache0; - - return function memoized(a1, a2, a3) { - if (!cache0) { - cache0 = new WeakMap(); - } - let cache1 = cache0.get(a1); - let cache2; - if (cache1) { - cache2 = cache1.get(a2); - if (cache2) { - const cachedValue = cache2.get(a3); - if (cachedValue !== undefined) { - return cachedValue; - } - } - } else { - cache1 = new WeakMap(); - cache0.set(a1, cache1); - } - if (!cache2) { - cache2 = new WeakMap(); - cache1.set(a2, cache2); - } - const newValue = fn(a1, a2, a3); - cache2.set(a3, newValue); - return newValue; - }; -} |