diff options
Diffstat (limited to 'src/plugins/staticRootPlugin/plugin.js')
-rw-r--r-- | src/plugins/staticRootPlugin/plugin.js | 105 |
1 files changed, 58 insertions, 47 deletions
diff --git a/src/plugins/staticRootPlugin/plugin.js b/src/plugins/staticRootPlugin/plugin.js index 59029eff2..aca8ba62d 100644 --- a/src/plugins/staticRootPlugin/plugin.js +++ b/src/plugins/staticRootPlugin/plugin.js @@ -1,52 +1,63 @@ -define([ - './StaticModelProvider' -], function ( - StaticModelProvider -) { - /** - * Static Root Plugin: takes an export file and exposes it as a new root - * object. - */ - function StaticRootPlugin(namespace, exportUrl) { - - const rootIdentifier = { - namespace: namespace, - key: 'root' - }; - - let cachedProvider; - - function loadProvider() { - return fetch(exportUrl) - .then(function (response) { - return response.json(); - }) - .then(function (importData) { - cachedProvider = new StaticModelProvider(importData, rootIdentifier); - - return cachedProvider; - }); - } - - function getProvider() { - if (!cachedProvider) { - cachedProvider = loadProvider(); - } +/***************************************************************************** + * Open MCT, Copyright (c) 2014-2022, 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. + *****************************************************************************/ + +import StaticModelProvider from './StaticModelProvider'; + +export default function StaticRootPlugin(options) { + const rootIdentifier = { + namespace: options.namespace, + key: 'root' + }; + + let cachedProvider; + + function loadProvider() { + return fetch(options.exportUrl) + .then(function (response) { + return response.json(); + }) + .then(function (importData) { + cachedProvider = new StaticModelProvider(importData, rootIdentifier); + + return cachedProvider; + }); + } - return Promise.resolve(cachedProvider); + function getProvider() { + if (!cachedProvider) { + cachedProvider = loadProvider(); } - return function install(openmct) { - openmct.objects.addRoot(rootIdentifier); - openmct.objects.addProvider(namespace, { - get: function (identifier) { - return getProvider().then(function (provider) { - return provider.get(identifier); - }); - } - }); - }; + return Promise.resolve(cachedProvider); } - return StaticRootPlugin; -}); + return function install(openmct) { + openmct.objects.addRoot(rootIdentifier); + openmct.objects.addProvider(options.namespace, { + get: function (identifier) { + return getProvider().then(function (provider) { + return provider.get(identifier); + }); + } + }); + }; +} |