typed-utilities
Version:
Strongly typed general purpose utilities
41 lines (30 loc) • 700 B
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.weakMemoize = exports.memoize = void 0;
const memoize = fn => {
const map = new Map();
const fnMmemo = param => {
if (map.has(param)) {
return map.get(param);
}
map.set(param, fn(param));
return fnMmemo(param);
};
return [fnMmemo, map];
};
exports.memoize = memoize;
const weakMemoize = fn => {
const map = new WeakMap();
const fnMmemo = param => {
if (map.has(param)) {
return map.get(param);
}
map.set(param, fn(param));
return fnMmemo(param);
};
return [fnMmemo, map];
};
exports.weakMemoize = weakMemoize;
//# sourceMappingURL=Memo.js.map