@liveblocks/react-ui
Version:
A set of React pre-built components for the Liveblocks products. Liveblocks is the all-in-one toolkit to build collaborative products like Figma, Notion, and more.
1 lines • 1.19 kB
Source Map (JSON)
{"version":3,"file":"memoize.cjs","sources":["../../src/utils/memoize.ts"],"sourcesContent":["import { stableStringify } from \"@liveblocks/core\";\n\nexport function memoize<TArgs extends unknown[], TReturn>(\n fn: (...args: TArgs) => TReturn\n): (...args: TArgs) => TReturn {\n const cache = new Map<string, TReturn>();\n\n return (...args: TArgs): TReturn => {\n const key = JSON.stringify(args.map((arg) => stableStringify(arg)));\n const cached = cache.get(key);\n\n if (cached !== undefined) {\n return cached;\n }\n\n const result = fn(...args);\n cache.set(key, result);\n\n return result;\n };\n}\n"],"names":["stableStringify"],"mappings":";;;;AAEO,SAAS,QACd,EAC6B,EAAA;AAC7B,EAAM,MAAA,KAAA,uBAAY,GAAqB,EAAA,CAAA;AAEvC,EAAA,OAAO,IAAI,IAAyB,KAAA;AAClC,IAAM,MAAA,GAAA,GAAM,IAAK,CAAA,SAAA,CAAU,IAAK,CAAA,GAAA,CAAI,CAAC,GAAQ,KAAAA,oBAAA,CAAgB,GAAG,CAAC,CAAC,CAAA,CAAA;AAClE,IAAM,MAAA,MAAA,GAAS,KAAM,CAAA,GAAA,CAAI,GAAG,CAAA,CAAA;AAE5B,IAAA,IAAI,WAAW,KAAW,CAAA,EAAA;AACxB,MAAO,OAAA,MAAA,CAAA;AAAA,KACT;AAEA,IAAM,MAAA,MAAA,GAAS,EAAG,CAAA,GAAG,IAAI,CAAA,CAAA;AACzB,IAAM,KAAA,CAAA,GAAA,CAAI,KAAK,MAAM,CAAA,CAAA;AAErB,IAAO,OAAA,MAAA,CAAA;AAAA,GACT,CAAA;AACF;;;;"}