@emotion/weak-memoize
Version:
A memoization function that uses a WeakMap
21 lines (16 loc) • 500 B
JavaScript
;
Object.defineProperty(exports, '__esModule', { value: true });
var weakMemoize = function weakMemoize(func) {
var cache = new WeakMap();
return function (arg) {
if (cache.has(arg)) {
// Use non-null assertion because we just checked that the cache `has` it
// This allows us to remove `undefined` from the return value
return cache.get(arg);
}
var ret = func(arg);
cache.set(arg, ret);
return ret;
};
};
exports["default"] = weakMemoize;