UNPKG

@skele/core

Version:

Core package of the Skele framework. Element definitions, registrations and traversal.

1 lines 642 B
'use strict';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;};}