UNPKG

@bitbite/filtered-list

Version:

filter a list of items

39 lines (38 loc) 1.22 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); function hashFn() { var params = []; for (var _i = 0; _i < arguments.length; _i++) { params[_i] = arguments[_i]; } return params.map(function (param) { if (typeof param === 'string') return param; if (typeof param === 'number') return String(param); if (typeof param === 'function') return param.constructor.name; if (Array.isArray(param)) return param.toString(); if (typeof param === 'object') return JSON.stringify(param); }).join('_'); } exports.Memoized = (function (store) { return function (fn, onMemoized) { return function () { var params = []; for (var _i = 0; _i < arguments.length; _i++) { params[_i] = arguments[_i]; } var key = hashFn(params); if (key in store) { onMemoized && onMemoized(store[key]); return store[key]; } ; store[key] = fn.apply(void 0, params); return store[key]; }; }; })({ /** empty store */});