diff options
Diffstat (limited to 'portal-FE-common/src/app/shared/plugin/plugins-config.provider.ts')
-rw-r--r-- | portal-FE-common/src/app/shared/plugin/plugins-config.provider.ts | 75 |
1 files changed, 75 insertions, 0 deletions
diff --git a/portal-FE-common/src/app/shared/plugin/plugins-config.provider.ts b/portal-FE-common/src/app/shared/plugin/plugins-config.provider.ts new file mode 100644 index 00000000..8c2a2e7d --- /dev/null +++ b/portal-FE-common/src/app/shared/plugin/plugins-config.provider.ts @@ -0,0 +1,75 @@ +/*- + * ============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<PluginsConfig>( + `assets/plugins-config.json` + ); + } +} |