/*- * ============LICENSE_START========================================== * ONAP Portal * =================================================================== * Copyright (C) 2019 AT&T Intellectual Property. All rights reserved. * =================================================================== * * Unless otherwise specified, all software contained herein is licensed * under the Apache License, Version 2.0 (the "License"); * you may not use this software 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. * * Unless otherwise specified, all documentation contained herein is licensed * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); * you may not use this documentation except in compliance with the License. * You may obtain a copy of the License at * * https://creativecommons.org/licenses/by/4.0/ * * Unless required by applicable law or agreed to in writing, documentation * 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. * * ============LICENSE_END============================================ * * */ import { Inject, Injectable, Optional, PLATFORM_ID } from '@angular/core'; import { HttpClient } from '@angular/common/http'; import { tap } from 'rxjs/operators'; import { preserveServerState } from './transfer-state.service'; import { isPlatformBrowser } from '@angular/common'; interface PluginsConfig { [key: string]: { name: string; path: string; deps: string[]; }; } @Injectable({ providedIn: 'root', }) export class PluginsConfigProvider { config: PluginsConfig; constructor( private http: HttpClient, @Inject(PLATFORM_ID) private platformId: {}, @Inject('APP_BASE_URL') @Optional() private readonly baseUrl: string ) { if (isPlatformBrowser(platformId)) { this.baseUrl = document.location.origin; } } @preserveServerState('PLUGIN_CONFIGS') loadConfig() { return this.http.get( `assets/plugins-config.json` ); } }