can
Version:
MIT-licensed, client-side, JavaScript framework that makes building rich web applications easy.
33 lines (26 loc) • 830 B
JavaScript
/* globals Promise */
steal("@loader", "can/util/can.js", function(loader, can){
// Given a module name normalize it and add it to the loader.bundle array.
return function(dynamicImports, parentName) {
if(!dynamicImports.length) {
return Promise.resolve();
}
// In the build the "main" loader is the localLoader
var localLoader = loader.localLoader || loader;
var bundle = localLoader.bundle;
if(!bundle) {
bundle = localLoader.bundle = [];
}
var bundleNormalizes = [];
can.each(dynamicImports, function(moduleName){
var bundleNormalize = loader.normalize(moduleName, parentName)
.then(function(moduleName){
if(!~bundle.indexOf(moduleName)) {
bundle.push(moduleName);
}
});
bundleNormalizes.push(bundleNormalize);
});
return Promise.all(bundleNormalizes);
};
});