@skele/core
Version:
Core package of the Skele framework. Element definitions, registrations and traversal.
1 lines • 642 B
JavaScript
;Object.defineProperty(exports,"__esModule",{value:true});exports.default=memoize;var _Trie=_interopRequireDefault(require("./impl/Trie"));var _Registry=require("./Registry");function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj};}function memoize(fn){var keyExtractor=arguments.length>1&&arguments[1]!==undefined?arguments[1]:function(x){return(0,_Registry.adaptKey)(x);};var cache=new _Trie.default();return function(key){var cacheKey=keyExtractor(key);var val=cache.get(cacheKey);if(typeof val==='undefined'){val=fn(key);cache.register(cacheKey,val!=null?val:null);}return val!=null?val:undefined;};}