Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/nasa/openmct.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'platform/framework/src/resolve/ExtensionResolver.js')
-rw-r--r--platform/framework/src/resolve/ExtensionResolver.js147
1 files changed, 0 insertions, 147 deletions
diff --git a/platform/framework/src/resolve/ExtensionResolver.js b/platform/framework/src/resolve/ExtensionResolver.js
deleted file mode 100644
index 208f51868..000000000
--- a/platform/framework/src/resolve/ExtensionResolver.js
+++ /dev/null
@@ -1,147 +0,0 @@
-/*****************************************************************************
- * Open MCT, Copyright (c) 2014-2021, United States Government
- * as represented by the Administrator of the National Aeronautics and Space
- * Administration. All rights reserved.
- *
- * Open MCT is licensed under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- * http://www.apache.org/licenses/LICENSE-2.0.
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
- * License for the specific language governing permissions and limitations
- * under the License.
- *
- * Open MCT includes source code licensed under additional open source
- * licenses. See the Open Source Licenses file (LICENSES.md) included with
- * this source code distribution or the Licensing information page available
- * at runtime from the About dialog for additional information.
- *****************************************************************************/
-
-/**
- * Module defining ExtensionResolver. Created by vwoeltje on 11/3/14.
- */
-define(
- [],
- function () {
-
- /**
- * An ExtensionResolver is responsible for loading any implementation
- * modules associated with specific extensions.
- *
- * @param {ImplementationLoader} loader used to load implementations
- * @param {*} $log Angular's logging service
- * @memberof platform/framework
- * @constructor
- */
- function ExtensionResolver(loader, $log) {
- this.loader = loader;
- this.$log = $log;
- }
-
- /**
- * Resolve the provided extension; this will give a promise
- * for the extension's implementation, if one has been
- * specified, or for the plain definition of the extension
- * otherwise. The plain definition will also be given
- * if the implementation fails to load for some reason.
- *
- * All key-value pairs from the extension definition
- * will additionally be attached to any loaded implementation.
- *
- * @param {Extension} extension the extension to resolve
- * @returns {Promise} a promise for the resolved extension
- */
- ExtensionResolver.prototype.resolve = function (extension) {
- var loader = this.loader,
- $log = this.$log;
-
- function loadImplementation(ext) {
- var implPromise = ext.hasImplementationValue()
- ? Promise.resolve(ext.getImplementationValue())
- : loader.load(ext.getImplementationPath()),
- definition = ext.getDefinition();
-
- // Wrap a constructor function (to avoid modifying the original)
- function constructorFor(impl) {
- function Constructor() {
- return impl.apply(this, arguments);
- }
-
- Constructor.prototype = impl.prototype;
-
- return Constructor;
- }
-
- // Attach values from the object definition to the
- // loaded implementation.
- function attachDefinition(impl) {
- var result = (typeof impl === 'function')
- ? constructorFor(impl)
- : Object.create(impl);
-
- // Copy over static properties
- Object.keys(impl).forEach(function (k) {
- result[k] = impl[k];
- });
-
- // Copy over definition
- Object.keys(definition).forEach(function (k) {
- if (result[k] === undefined) {
- result[k] = definition[k];
- }
- });
- result.definition = definition;
-
- // Log that this load was successful
- $log.info("Resolved " + ext.getLogName());
-
- return result;
- }
-
- // Log any errors in loading the implementation, and
- // return the plain extension definition instead.
- function handleError(err) {
- // Build up a log message from parts
- var message = [
- "Could not load implementation for extension ",
- ext.getLogName(),
- " due to ",
- err.message
- ].join("");
-
- // Log that the extension was not loaded
- $log.warn(message);
-
- return ext.getDefinition();
- }
-
- if (!ext.hasImplementationValue()) {
- // Log that loading has begun
- $log.info([
- "Loading implementation ",
- ext.getImplementationPath(),
- " for extension ",
- ext.getLogName()
- ].join(""));
- }
-
- return implPromise.then(attachDefinition, handleError);
- }
-
- // Log that loading has begun
- $log.info([
- "Resolving extension ",
- extension.getLogName()
- ].join(""));
-
- return extension.hasImplementation()
- ? loadImplementation(extension)
- : Promise.resolve(extension.getDefinition());
- };
-
- return ExtensionResolver;
- }
-);