From 3d1cd02f27518f1a04374c7c8320cd5d82ede6e9 Mon Sep 17 00:00:00 2001 From: Minteck <contact@minteck.org> Date: Thu, 23 Feb 2023 19:34:56 +0100 Subject: Updated 40 files, added 37 files, deleted 1103 files and renamed 3905 files (automated) --- .../node_modules/graphql/jsutils/memoize3.js.flow | 39 ++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 includes/external/school/node_modules/graphql/jsutils/memoize3.js.flow (limited to 'includes/external/school/node_modules/graphql/jsutils/memoize3.js.flow') diff --git a/includes/external/school/node_modules/graphql/jsutils/memoize3.js.flow b/includes/external/school/node_modules/graphql/jsutils/memoize3.js.flow new file mode 100644 index 0000000..cd4ccd5 --- /dev/null +++ b/includes/external/school/node_modules/graphql/jsutils/memoize3.js.flow @@ -0,0 +1,39 @@ +// @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; + }; +} -- cgit