Files
openmct/platform/framework/src/FrameworkInitializer.js
Victor Woeltjen 650969d9c5 [Framework] Begin adding registration phase
Begin implementation registration phase of framework
layer initialization process. This phase is responsible
for registering resolved extensions with Angular, in a
manner than individual extensions can later request
dependencies from. WTD-518.
2014-11-03 13:29:59 -08:00

65 lines
1.8 KiB
JavaScript

/*global define,Promise*/
/**
* Module defining FrameworkInitializer. Created by vwoeltje on 11/3/14.
*/
define(
[],
function () {
"use strict";
/**
*
* @constructor
* @param {BundleLoader} loader
* @param {ExtensionResolver} resolver
* @param {ExtensionRegistrar} registrar
* @param {ApplicationBootstrapper} bootstrapper
*/
function FrameworkInitializer(loader, resolver, registrar, bootstrapper) {
function registerExtensions(resolvedExtensions) {
Object.keys(resolvedExtensions).forEach(function (category) {
registrar.registerExtensions(
category,
resolvedExtensions[category]
);
});
}
/**
*
* @param bundles
* @returns {Object.<string, object[]>} an object mapping
*/
function resolveExtensions(bundles) {
var resolvedExtensions = {};
function resolveExtensionsForBundle(bundle) {
}
return Promises.all(bundles.map(resolveExtensionsForBundle)).then(function () {
return resolvedExtensions;
});
}
function loadBundles(bundleList) {
return loader.loadBundles(bundleList);
}
return {
runApplication: function (bundleList) {
return loadBundles()
.then(resolveExtensions)
.then(registerExtensions)
.then(bootstrapApplication);
}
};
}
return FrameworkInitializer;
}
);