graphql
Version:
A Query Language and Runtime which can target any service.
1 lines • 940 B
Source Map (JSON)
{"version":3,"file":"memoize1.js","sourceRoot":"","sources":["../../src/jsutils/memoize1.ts"],"names":[],"mappings":"AAKA,MAAM,UAAU,QAAQ,CACtB,EAAiB;IAEjB,IAAI,MAAsB,CAAC;IAE3B,OAAO,SAAS,QAAQ,CAAC,EAAE;QACzB,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAEzB,IAAI,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC9B,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YAC3B,QAAQ,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;YAClB,MAAM,CAAC,GAAG,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;QAC3B,CAAC;QAED,OAAO,QAAQ,CAAC;IAClB,CAAC,CAAC;AACJ,CAAC","sourcesContent":["/**\n * Memoizes the provided one-argument function.\n *\n * @internal\n */\nexport function memoize1<A1 extends object, R>(\n fn: (a1: A1) => R,\n): (a1: A1) => R {\n let cache0: WeakMap<A1, R>;\n\n return function memoized(a1) {\n cache0 ??= new WeakMap();\n\n let fnResult = cache0.get(a1);\n if (fnResult === undefined) {\n fnResult = fn(a1);\n cache0.set(a1, fnResult);\n }\n\n return fnResult;\n };\n}\n"]}