UNPKG

systemjs

Version:

System loader extension for flexible AMD & CommonJS support

42 lines (35 loc) 1.05 kB
/* * Dependency Tree Cache * * Allows a build to pre-populate a dependency trace tree on the loader of * the expected dependency tree, to be loaded upfront when requesting the * module, avoinding the n round trips latency of module loading, where * n is the dependency tree depth. * * eg: * System.depCache = { * 'app': ['normalized', 'deps'], * 'normalized': ['another'], * 'deps': ['tree'] * }; * * System.import('app') * // simultaneously starts loading all of: * // 'normalized', 'deps', 'another', 'tree' * // before "app" source is even loaded */ function depCache(loader) { loader.depCache = loader.depCache || {}; loaderLocate = loader.locate; loader.locate = function(load) { var loader = this; if (!loader.depCache) loader.depCache = {}; // load direct deps, in turn will pick up their trace trees var deps = loader.depCache[load.name]; if (deps) for (var i = 0; i < deps.length; i++) loader.load(deps[i]); return loaderLocate.call(loader, load); } }