UNPKG

cz-conventional-changelog-befe

Version:
68 lines (59 loc) 1.65 kB
"use strict"; /** * @file memfn * @author Cuttle Cong * @date 2018/10/25 * */ function memoize(fn) { var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}, _ref$once = _ref.once, once = _ref$once === undefined ? false : _ref$once, _ref$eq = _ref.eq, eq = _ref$eq === undefined ? function (a, b) { return a === b; } : _ref$eq; var map = new Map(); return function memoizeFn() { var isContainsKey = false; var containsKey = void 0; var curKey = [].concat(Array.prototype.slice.call(arguments)); var _iteratorNormalCompletion = true; var _didIteratorError = false; var _iteratorError = undefined; try { for (var _iterator = map.keys()[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) { var key = _step.value; if (eq(key, curKey)) { isContainsKey = true; containsKey = key; break; } } // console.log(isContainsKey, curKey, map.size) } catch (err) { _didIteratorError = true; _iteratorError = err; } finally { try { if (!_iteratorNormalCompletion && _iterator.return) { _iterator.return(); } } finally { if (_didIteratorError) { throw _iteratorError; } } } if (isContainsKey && containsKey) { return map.get(containsKey); } if (once) { map.clear(); } var result = fn.apply(this, arguments); map.set(curKey, result); return result; }; } module.exports = memoize;