You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

1 line
2.6 KiB

{"ast":null,"code":"export default function memoize(callback) {\n var previous;\n var result;\n return function () {\n var hasChanged = false;\n for (var _len = arguments.length, dependencies = new Array(_len), _key = 0; _key < _len; _key++) {\n dependencies[_key] = arguments[_key];\n }\n if (previous) {\n if (previous.length !== dependencies.length) {\n hasChanged = true;\n } else {\n for (var i = 0; i < previous.length; i++) {\n if (previous[i] !== dependencies[i]) {\n hasChanged = true;\n break;\n }\n }\n }\n } else {\n hasChanged = true;\n }\n previous = dependencies;\n if (hasChanged || result === undefined) {\n result = callback.apply(void 0, dependencies);\n }\n return result;\n };\n}","map":{"version":3,"sources":["memoize.tsx"],"names":["memoize","callback","previous","result","dependencies","hasChanged","length","i","undefined"],"mappings":"AAAA,eAAe,SAASA,OAAO,CAC7BC,QAAmC,EACnC;EACA,IAAIC,QAA0B;EAC9B,IAAIC,MAA0B;EAE9B,OAAO,YAAmC;IACxC,IAAIE,UAAU,GAAG,KAAK;IAAC,KAAA,IAAA,IAAA,GAAA,SAAA,CAAA,MAAA,EADdD,YAAY,GAAA,IAAA,KAAA,CAAA,IAAA,CAAA,EAAA,IAAA,GAAA,CAAA,EAAA,IAAA,GAAA,IAAA,EAAA,IAAA,EAAA,EAAA;MAAZA,YAAY,CAAA,IAAA,CAAA,GAAA,SAAA,CAAA,IAAA,CAAA;IAAA;IAGrB,IAAIF,QAAQ,EAAE;MACZ,IAAIA,QAAQ,CAACI,MAAM,KAAKF,YAAY,CAACE,MAAM,EAAE;QAC3CD,UAAU,GAAG,IAAI;MACnB,CAAC,MAAM;QACL,KAAK,IAAIE,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGL,QAAQ,CAACI,MAAM,EAAEC,CAAC,EAAE,EAAE;UACxC,IAAIL,QAAQ,CAACK,CAAC,CAAC,KAAKH,YAAY,CAACG,CAAC,CAAC,EAAE;YACnCF,UAAU,GAAG,IAAI;YACjB;UACF;QACF;MACF;IACF,CAAC,MAAM;MACLA,UAAU,GAAG,IAAI;IACnB;IAEAH,QAAQ,GAAGE,YAAY;IAEvB,IAAIC,UAAU,IAAIF,MAAM,KAAKK,SAAS,EAAE;MACtCL,MAAM,GAAGF,QAAQ,eAAIG,YAAY,CAAC;IACpC;IAEA,OAAOD,MAAM;EACf,CAAC;AACH","sourceRoot":"../../src","sourcesContent":["export default function memoize(callback) {\n let previous;\n let result;\n return function () {\n let hasChanged = false;\n for (var _len = arguments.length, dependencies = new Array(_len), _key = 0; _key < _len; _key++) {\n dependencies[_key] = arguments[_key];\n }\n if (previous) {\n if (previous.length !== dependencies.length) {\n hasChanged = true;\n } else {\n for (let i = 0; i < previous.length; i++) {\n if (previous[i] !== dependencies[i]) {\n hasChanged = true;\n break;\n }\n }\n }\n } else {\n hasChanged = true;\n }\n previous = dependencies;\n if (hasChanged || result === undefined) {\n result = callback(...dependencies);\n }\n return result;\n };\n}\n//# sourceMappingURL=memoize.js.map"]},"metadata":{},"sourceType":"module"}