ionic-angular
Version:
A powerful framework for building mobile and progressive web apps with JavaScript and Angular
46 lines • 1.64 kB
JavaScript
import { Compiler, Injectable } from '@angular/core';
/**
* NgModuleFactoryLoader that uses SystemJS to load NgModuleFactory
*/
var NgModuleLoader = (function () {
function NgModuleLoader(_compiler) {
this._compiler = _compiler;
}
NgModuleLoader.prototype.load = function (modulePath, ngModuleExport) {
var offlineMode = this._compiler instanceof Compiler;
return offlineMode ? loadPrecompiledFactory(modulePath, ngModuleExport) : loadAndCompile(this._compiler, modulePath, ngModuleExport);
};
NgModuleLoader.decorators = [
{ type: Injectable },
];
/** @nocollapse */
NgModuleLoader.ctorParameters = function () { return [
{ type: Compiler, },
]; };
return NgModuleLoader;
}());
export { NgModuleLoader };
function loadAndCompile(compiler, modulePath, ngModuleExport) {
if (!ngModuleExport) {
ngModuleExport = 'default';
}
return System.import(modulePath)
.then(function (rawModule) {
var module = rawModule[ngModuleExport];
if (!module) {
throw new Error("Module " + modulePath + " does not export " + ngModuleExport);
}
return compiler.compileModuleAsync(module);
});
}
function loadPrecompiledFactory(modulePath, ngModuleExport) {
return System.import(modulePath)
.then(function (rawModule) {
var ngModuleFactory = rawModule[ngModuleExport];
if (!ngModuleFactory) {
throw new Error("Module " + modulePath + " does not export " + ngModuleExport);
}
return ngModuleFactory;
});
}
//# sourceMappingURL=ng-module-loader.js.map