runtime-config-loader 4.1.0 → 5.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2020/index.mjs +4 -0
- package/esm2020/lib/runtime-config-loader/runtime-config-loader.service.mjs +53 -0
- package/esm2020/lib/runtime-config-loader.module.mjs +49 -0
- package/esm2020/lib/runtime-config.mjs +6 -0
- package/esm2020/runtime-config-loader.mjs +5 -0
- package/fesm2015/runtime-config-loader.mjs +110 -0
- package/fesm2015/runtime-config-loader.mjs.map +1 -0
- package/{fesm2015/runtime-config-loader.js → fesm2020/runtime-config-loader.mjs} +9 -9
- package/fesm2020/runtime-config-loader.mjs.map +1 -0
- package/package.json +23 -9
- package/runtime-config-loader-5.0.0.tgz +0 -0
- package/bundles/runtime-config-loader.umd.js +0 -146
- package/bundles/runtime-config-loader.umd.js.map +0 -1
- package/esm2015/index.js +0 -4
- package/esm2015/index.js.map +0 -1
- package/esm2015/lib/runtime-config-loader/runtime-config-loader.service.js +0 -53
- package/esm2015/lib/runtime-config-loader/runtime-config-loader.service.js.map +0 -1
- package/esm2015/lib/runtime-config-loader.module.js +0 -49
- package/esm2015/lib/runtime-config-loader.module.js.map +0 -1
- package/esm2015/lib/runtime-config.js +0 -6
- package/esm2015/lib/runtime-config.js.map +0 -1
- package/esm2015/runtime-config-loader.js +0 -5
- package/esm2015/runtime-config-loader.js.map +0 -1
- package/fesm2015/runtime-config-loader.js.map +0 -1
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export * from './lib/runtime-config-loader.module';
|
|
2
|
+
export * from './lib/runtime-config';
|
|
3
|
+
export * from './lib/runtime-config-loader/runtime-config-loader.service';
|
|
4
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWJzL3J1bnRpbWUtY29uZmlnLWxvYWRlci9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxvQ0FBb0MsQ0FBQztBQUNuRCxjQUFjLHNCQUFzQixDQUFDO0FBQ3JDLGNBQWMsMkRBQTJELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2xpYi9ydW50aW1lLWNvbmZpZy1sb2FkZXIubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3J1bnRpbWUtY29uZmlnJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3J1bnRpbWUtY29uZmlnLWxvYWRlci9ydW50aW1lLWNvbmZpZy1sb2FkZXIuc2VydmljZSc7XG4iXX0=
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { HttpClient } from '@angular/common/http';
|
|
2
|
+
import { Injectable, Optional } from '@angular/core';
|
|
3
|
+
import { RuntimeConfig } from '../runtime-config';
|
|
4
|
+
import { forkJoin, of, Subject } from 'rxjs';
|
|
5
|
+
import { catchError, take, tap } from 'rxjs/operators';
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
import * as i1 from "@angular/common/http";
|
|
8
|
+
import * as i2 from "../runtime-config";
|
|
9
|
+
export class RuntimeConfigLoaderService {
|
|
10
|
+
constructor(_http, config) {
|
|
11
|
+
this._http = _http;
|
|
12
|
+
this.configUrl = './assets/config.json';
|
|
13
|
+
this.configObject = null;
|
|
14
|
+
this.configSubject = new Subject();
|
|
15
|
+
if (config) {
|
|
16
|
+
this.configUrl = config.configUrl;
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
loadConfig() {
|
|
20
|
+
const urls = Array.isArray(this.configUrl)
|
|
21
|
+
? this.configUrl
|
|
22
|
+
: [this.configUrl];
|
|
23
|
+
const observables = urls.map((url) => this.makeHttpCall(url));
|
|
24
|
+
return forkJoin(observables).pipe(tap((configDataArray) => {
|
|
25
|
+
this.configObject = configDataArray.reduce((acc, configData) => {
|
|
26
|
+
return { ...acc, ...configData };
|
|
27
|
+
}, {});
|
|
28
|
+
this.configSubject.next(this.configObject);
|
|
29
|
+
}), catchError((err) => {
|
|
30
|
+
console.error('Error loading config: ', err);
|
|
31
|
+
this.configObject = null;
|
|
32
|
+
this.configSubject.next(this.configObject);
|
|
33
|
+
return of(null);
|
|
34
|
+
}));
|
|
35
|
+
}
|
|
36
|
+
makeHttpCall(url) {
|
|
37
|
+
return this._http.get(url).pipe(take(1));
|
|
38
|
+
}
|
|
39
|
+
getConfig() {
|
|
40
|
+
return this.configObject;
|
|
41
|
+
}
|
|
42
|
+
getConfigObjectKey(key) {
|
|
43
|
+
return this.configObject ? this.configObject[key] : null;
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
RuntimeConfigLoaderService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.5", ngImport: i0, type: RuntimeConfigLoaderService, deps: [{ token: i1.HttpClient }, { token: i2.RuntimeConfig, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
47
|
+
RuntimeConfigLoaderService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.5", ngImport: i0, type: RuntimeConfigLoaderService });
|
|
48
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.5", ngImport: i0, type: RuntimeConfigLoaderService, decorators: [{
|
|
49
|
+
type: Injectable
|
|
50
|
+
}], ctorParameters: function () { return [{ type: i1.HttpClient }, { type: i2.RuntimeConfig, decorators: [{
|
|
51
|
+
type: Optional
|
|
52
|
+
}] }]; } });
|
|
53
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVudGltZS1jb25maWctbG9hZGVyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3J1bnRpbWUtY29uZmlnLWxvYWRlci9zcmMvbGliL3J1bnRpbWUtY29uZmlnLWxvYWRlci9ydW50aW1lLWNvbmZpZy1sb2FkZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDckQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxRQUFRLEVBQWMsRUFBRSxFQUFFLE9BQU8sRUFBTyxNQUFNLE1BQU0sQ0FBQztBQUM5RCxPQUFPLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7OztBQUd2RCxNQUFNLE9BQU8sMEJBQTBCO0lBS3RDLFlBQW9CLEtBQWlCLEVBQWMsTUFBcUI7UUFBcEQsVUFBSyxHQUFMLEtBQUssQ0FBWTtRQUo3QixjQUFTLEdBQXNCLHNCQUFzQixDQUFDO1FBQ3RELGlCQUFZLEdBQVEsSUFBSSxDQUFDO1FBQzFCLGtCQUFhLEdBQWlCLElBQUksT0FBTyxFQUFPLENBQUM7UUFHdkQsSUFBSSxNQUFNLEVBQUU7WUFDWCxJQUFJLENBQUMsU0FBUyxHQUFHLE1BQU0sQ0FBQyxTQUFTLENBQUM7U0FDbEM7SUFDRixDQUFDO0lBRUQsVUFBVTtRQUNULE1BQU0sSUFBSSxHQUFhLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQztZQUNuRCxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVM7WUFDaEIsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBRXBCLE1BQU0sV0FBVyxHQUFzQixJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FDdkQsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsQ0FDdEIsQ0FBQztRQUVGLE9BQU8sUUFBUSxDQUFDLFdBQVcsQ0FBQyxDQUFDLElBQUksQ0FDaEMsR0FBRyxDQUFDLENBQUMsZUFBc0IsRUFBRSxFQUFFO1lBQzlCLElBQUksQ0FBQyxZQUFZLEdBQUcsZUFBZSxDQUFDLE1BQU0sQ0FDekMsQ0FBQyxHQUFHLEVBQUUsVUFBVSxFQUFFLEVBQUU7Z0JBQ25CLE9BQU8sRUFBRSxHQUFHLEdBQUcsRUFBRSxHQUFHLFVBQVUsRUFBRSxDQUFDO1lBQ2xDLENBQUMsRUFDRCxFQUFFLENBQ0YsQ0FBQztZQUVGLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUM1QyxDQUFDLENBQUMsRUFDRixVQUFVLENBQUMsQ0FBQyxHQUFRLEVBQUUsRUFBRTtZQUN2QixPQUFPLENBQUMsS0FBSyxDQUFDLHdCQUF3QixFQUFFLEdBQUcsQ0FBQyxDQUFDO1lBQzdDLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDO1lBQ3pCLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztZQUMzQyxPQUFPLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNqQixDQUFDLENBQUMsQ0FDRixDQUFDO0lBQ0gsQ0FBQztJQUVPLFlBQVksQ0FBQyxHQUFXO1FBQy9CLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzFDLENBQUM7SUFFRCxTQUFTO1FBQ1IsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDO0lBQzFCLENBQUM7SUFFRCxrQkFBa0IsQ0FBQyxHQUFXO1FBQzdCLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0lBQzFELENBQUM7O3VIQWxEVywwQkFBMEI7MkhBQTFCLDBCQUEwQjsyRkFBMUIsMEJBQTBCO2tCQUR0QyxVQUFVOzswQkFNOEIsUUFBUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBJbmplY3RhYmxlLCBPcHRpb25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUnVudGltZUNvbmZpZyB9IGZyb20gJy4uL3J1bnRpbWUtY29uZmlnJztcbmltcG9ydCB7IGZvcmtKb2luLCBPYnNlcnZhYmxlLCBvZiwgU3ViamVjdCwgemlwIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBjYXRjaEVycm9yLCB0YWtlLCB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBSdW50aW1lQ29uZmlnTG9hZGVyU2VydmljZSB7XG5cdHByaXZhdGUgY29uZmlnVXJsOiBzdHJpbmcgfCBzdHJpbmdbXSA9ICcuL2Fzc2V0cy9jb25maWcuanNvbic7XG5cdHByaXZhdGUgY29uZmlnT2JqZWN0OiBhbnkgPSBudWxsO1xuXHRwdWJsaWMgY29uZmlnU3ViamVjdDogU3ViamVjdDxhbnk+ID0gbmV3IFN1YmplY3Q8YW55PigpO1xuXG5cdGNvbnN0cnVjdG9yKHByaXZhdGUgX2h0dHA6IEh0dHBDbGllbnQsIEBPcHRpb25hbCgpIGNvbmZpZzogUnVudGltZUNvbmZpZykge1xuXHRcdGlmIChjb25maWcpIHtcblx0XHRcdHRoaXMuY29uZmlnVXJsID0gY29uZmlnLmNvbmZpZ1VybDtcblx0XHR9XG5cdH1cblxuXHRsb2FkQ29uZmlnKCk6IE9ic2VydmFibGU8YW55PiB7XG5cdFx0Y29uc3QgdXJsczogc3RyaW5nW10gPSBBcnJheS5pc0FycmF5KHRoaXMuY29uZmlnVXJsKVxuXHRcdFx0PyB0aGlzLmNvbmZpZ1VybFxuXHRcdFx0OiBbdGhpcy5jb25maWdVcmxdO1xuXG5cdFx0Y29uc3Qgb2JzZXJ2YWJsZXM6IE9ic2VydmFibGU8YW55PltdID0gdXJscy5tYXAoKHVybCkgPT5cblx0XHRcdHRoaXMubWFrZUh0dHBDYWxsKHVybClcblx0XHQpO1xuXG5cdFx0cmV0dXJuIGZvcmtKb2luKG9ic2VydmFibGVzKS5waXBlKFxuXHRcdFx0dGFwKChjb25maWdEYXRhQXJyYXk6IGFueVtdKSA9PiB7XG5cdFx0XHRcdHRoaXMuY29uZmlnT2JqZWN0ID0gY29uZmlnRGF0YUFycmF5LnJlZHVjZShcblx0XHRcdFx0XHQoYWNjLCBjb25maWdEYXRhKSA9PiB7XG5cdFx0XHRcdFx0XHRyZXR1cm4geyAuLi5hY2MsIC4uLmNvbmZpZ0RhdGEgfTtcblx0XHRcdFx0XHR9LFxuXHRcdFx0XHRcdHt9XG5cdFx0XHRcdCk7XG5cblx0XHRcdFx0dGhpcy5jb25maWdTdWJqZWN0Lm5leHQodGhpcy5jb25maWdPYmplY3QpO1xuXHRcdFx0fSksXG5cdFx0XHRjYXRjaEVycm9yKChlcnI6IGFueSkgPT4ge1xuXHRcdFx0XHRjb25zb2xlLmVycm9yKCdFcnJvciBsb2FkaW5nIGNvbmZpZzogJywgZXJyKTtcblx0XHRcdFx0dGhpcy5jb25maWdPYmplY3QgPSBudWxsO1xuXHRcdFx0XHR0aGlzLmNvbmZpZ1N1YmplY3QubmV4dCh0aGlzLmNvbmZpZ09iamVjdCk7XG5cdFx0XHRcdHJldHVybiBvZihudWxsKTtcblx0XHRcdH0pXG5cdFx0KTtcblx0fVxuXG5cdHByaXZhdGUgbWFrZUh0dHBDYWxsKHVybDogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcblx0XHRyZXR1cm4gdGhpcy5faHR0cC5nZXQodXJsKS5waXBlKHRha2UoMSkpO1xuXHR9XG5cblx0Z2V0Q29uZmlnKCkge1xuXHRcdHJldHVybiB0aGlzLmNvbmZpZ09iamVjdDtcblx0fVxuXG5cdGdldENvbmZpZ09iamVjdEtleShrZXk6IHN0cmluZykge1xuXHRcdHJldHVybiB0aGlzLmNvbmZpZ09iamVjdCA/IHRoaXMuY29uZmlnT2JqZWN0W2tleV0gOiBudWxsO1xuXHR9XG59XG4iXX0=
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { HttpClientModule } from '@angular/common/http';
|
|
2
|
+
import { APP_INITIALIZER, NgModule } from '@angular/core';
|
|
3
|
+
import { RuntimeConfig } from './runtime-config';
|
|
4
|
+
import { RuntimeConfigLoaderService } from './runtime-config-loader/runtime-config-loader.service';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
export function initConfig(configSvc) {
|
|
7
|
+
return () => configSvc.loadConfig();
|
|
8
|
+
}
|
|
9
|
+
export class RuntimeConfigLoaderModule {
|
|
10
|
+
static forRoot(config) {
|
|
11
|
+
return {
|
|
12
|
+
ngModule: RuntimeConfigLoaderModule,
|
|
13
|
+
providers: [
|
|
14
|
+
{
|
|
15
|
+
provide: RuntimeConfig,
|
|
16
|
+
useValue: config,
|
|
17
|
+
},
|
|
18
|
+
RuntimeConfigLoaderService,
|
|
19
|
+
],
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
RuntimeConfigLoaderModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.5", ngImport: i0, type: RuntimeConfigLoaderModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
24
|
+
RuntimeConfigLoaderModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.5", ngImport: i0, type: RuntimeConfigLoaderModule, imports: [HttpClientModule] });
|
|
25
|
+
RuntimeConfigLoaderModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.5", ngImport: i0, type: RuntimeConfigLoaderModule, providers: [
|
|
26
|
+
RuntimeConfigLoaderService,
|
|
27
|
+
{
|
|
28
|
+
provide: APP_INITIALIZER,
|
|
29
|
+
useFactory: initConfig,
|
|
30
|
+
deps: [RuntimeConfigLoaderService],
|
|
31
|
+
multi: true,
|
|
32
|
+
},
|
|
33
|
+
], imports: [[HttpClientModule]] });
|
|
34
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.5", ngImport: i0, type: RuntimeConfigLoaderModule, decorators: [{
|
|
35
|
+
type: NgModule,
|
|
36
|
+
args: [{
|
|
37
|
+
imports: [HttpClientModule],
|
|
38
|
+
providers: [
|
|
39
|
+
RuntimeConfigLoaderService,
|
|
40
|
+
{
|
|
41
|
+
provide: APP_INITIALIZER,
|
|
42
|
+
useFactory: initConfig,
|
|
43
|
+
deps: [RuntimeConfigLoaderService],
|
|
44
|
+
multi: true,
|
|
45
|
+
},
|
|
46
|
+
],
|
|
47
|
+
}]
|
|
48
|
+
}] });
|
|
49
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVudGltZS1jb25maWctbG9hZGVyLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvcnVudGltZS1jb25maWctbG9hZGVyL3NyYy9saWIvcnVudGltZS1jb25maWctbG9hZGVyLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN4RCxPQUFPLEVBQUUsZUFBZSxFQUF1QixRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL0UsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2pELE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLHVEQUF1RCxDQUFDOztBQUVuRyxNQUFNLFVBQVUsVUFBVSxDQUFDLFNBQXFDO0lBQy9ELE9BQU8sR0FBRyxFQUFFLENBQUMsU0FBUyxDQUFDLFVBQVUsRUFBRSxDQUFDO0FBQ3JDLENBQUM7QUFjRCxNQUFNLE9BQU8seUJBQXlCO0lBQ3JDLE1BQU0sQ0FBQyxPQUFPLENBQ2IsTUFBcUI7UUFFckIsT0FBTztZQUNOLFFBQVEsRUFBRSx5QkFBeUI7WUFDbkMsU0FBUyxFQUFFO2dCQUNWO29CQUNDLE9BQU8sRUFBRSxhQUFhO29CQUN0QixRQUFRLEVBQUUsTUFBTTtpQkFDaEI7Z0JBQ0QsMEJBQTBCO2FBQzFCO1NBQ0QsQ0FBQztJQUNILENBQUM7O3NIQWRXLHlCQUF5Qjt1SEFBekIseUJBQXlCLFlBWDNCLGdCQUFnQjt1SEFXZCx5QkFBeUIsYUFWMUI7UUFDViwwQkFBMEI7UUFDMUI7WUFDQyxPQUFPLEVBQUUsZUFBZTtZQUN4QixVQUFVLEVBQUUsVUFBVTtZQUN0QixJQUFJLEVBQUUsQ0FBQywwQkFBMEIsQ0FBQztZQUNsQyxLQUFLLEVBQUUsSUFBSTtTQUNYO0tBQ0QsWUFUUSxDQUFDLGdCQUFnQixDQUFDOzJGQVdmLHlCQUF5QjtrQkFackMsUUFBUTttQkFBQztvQkFDVCxPQUFPLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQztvQkFDM0IsU0FBUyxFQUFFO3dCQUNWLDBCQUEwQjt3QkFDMUI7NEJBQ0MsT0FBTyxFQUFFLGVBQWU7NEJBQ3hCLFVBQVUsRUFBRSxVQUFVOzRCQUN0QixJQUFJLEVBQUUsQ0FBQywwQkFBMEIsQ0FBQzs0QkFDbEMsS0FBSyxFQUFFLElBQUk7eUJBQ1g7cUJBQ0Q7aUJBQ0QiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwQ2xpZW50TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgQVBQX0lOSVRJQUxJWkVSLCBNb2R1bGVXaXRoUHJvdmlkZXJzLCBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUnVudGltZUNvbmZpZyB9IGZyb20gJy4vcnVudGltZS1jb25maWcnO1xuaW1wb3J0IHsgUnVudGltZUNvbmZpZ0xvYWRlclNlcnZpY2UgfSBmcm9tICcuL3J1bnRpbWUtY29uZmlnLWxvYWRlci9ydW50aW1lLWNvbmZpZy1sb2FkZXIuc2VydmljZSc7XG5cbmV4cG9ydCBmdW5jdGlvbiBpbml0Q29uZmlnKGNvbmZpZ1N2YzogUnVudGltZUNvbmZpZ0xvYWRlclNlcnZpY2UpIHtcblx0cmV0dXJuICgpID0+IGNvbmZpZ1N2Yy5sb2FkQ29uZmlnKCk7XG59XG5cbkBOZ01vZHVsZSh7XG5cdGltcG9ydHM6IFtIdHRwQ2xpZW50TW9kdWxlXSxcblx0cHJvdmlkZXJzOiBbXG5cdFx0UnVudGltZUNvbmZpZ0xvYWRlclNlcnZpY2UsXG5cdFx0e1xuXHRcdFx0cHJvdmlkZTogQVBQX0lOSVRJQUxJWkVSLFxuXHRcdFx0dXNlRmFjdG9yeTogaW5pdENvbmZpZyxcblx0XHRcdGRlcHM6IFtSdW50aW1lQ29uZmlnTG9hZGVyU2VydmljZV0sXG5cdFx0XHRtdWx0aTogdHJ1ZSxcblx0XHR9LFxuXHRdLFxufSlcbmV4cG9ydCBjbGFzcyBSdW50aW1lQ29uZmlnTG9hZGVyTW9kdWxlIHtcblx0c3RhdGljIGZvclJvb3QoXG5cdFx0Y29uZmlnOiBSdW50aW1lQ29uZmlnXG5cdCk6IE1vZHVsZVdpdGhQcm92aWRlcnM8UnVudGltZUNvbmZpZ0xvYWRlck1vZHVsZT4ge1xuXHRcdHJldHVybiB7XG5cdFx0XHRuZ01vZHVsZTogUnVudGltZUNvbmZpZ0xvYWRlck1vZHVsZSxcblx0XHRcdHByb3ZpZGVyczogW1xuXHRcdFx0XHR7XG5cdFx0XHRcdFx0cHJvdmlkZTogUnVudGltZUNvbmZpZyxcblx0XHRcdFx0XHR1c2VWYWx1ZTogY29uZmlnLFxuXHRcdFx0XHR9LFxuXHRcdFx0XHRSdW50aW1lQ29uZmlnTG9hZGVyU2VydmljZSxcblx0XHRcdF0sXG5cdFx0fTtcblx0fVxufVxuIl19
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export class RuntimeConfig {
|
|
2
|
+
constructor(obj = {}) {
|
|
3
|
+
this.configUrl = obj.configUrl || './assets/config.json';
|
|
4
|
+
}
|
|
5
|
+
}
|
|
6
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVudGltZS1jb25maWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL3J1bnRpbWUtY29uZmlnLWxvYWRlci9zcmMvbGliL3J1bnRpbWUtY29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sT0FBTyxhQUFhO0lBR3pCLFlBQVksTUFBVyxFQUFFO1FBQ3hCLElBQUksQ0FBQyxTQUFTLEdBQUcsR0FBRyxDQUFDLFNBQVMsSUFBSSxzQkFBc0IsQ0FBQztJQUMxRCxDQUFDO0NBQ0QiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY2xhc3MgUnVudGltZUNvbmZpZyB7XG5cdGNvbmZpZ1VybDogc3RyaW5nIHwgc3RyaW5nW107XG5cblx0Y29uc3RydWN0b3Iob2JqOiBhbnkgPSB7fSkge1xuXHRcdHRoaXMuY29uZmlnVXJsID0gb2JqLmNvbmZpZ1VybCB8fCAnLi9hc3NldHMvY29uZmlnLmpzb24nO1xuXHR9XG59XG4iXX0=
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generated bundle index. Do not edit.
|
|
3
|
+
*/
|
|
4
|
+
export * from './index';
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVudGltZS1jb25maWctbG9hZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vbGlicy9ydW50aW1lLWNvbmZpZy1sb2FkZXIvc3JjL3J1bnRpbWUtY29uZmlnLWxvYWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ==
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
import * as i1 from '@angular/common/http';
|
|
2
|
+
import { HttpClientModule } from '@angular/common/http';
|
|
3
|
+
import * as i0 from '@angular/core';
|
|
4
|
+
import { Injectable, Optional, APP_INITIALIZER, NgModule } from '@angular/core';
|
|
5
|
+
import { Subject, forkJoin, of } from 'rxjs';
|
|
6
|
+
import { tap, catchError, take } from 'rxjs/operators';
|
|
7
|
+
|
|
8
|
+
class RuntimeConfig {
|
|
9
|
+
constructor(obj = {}) {
|
|
10
|
+
this.configUrl = obj.configUrl || './assets/config.json';
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
class RuntimeConfigLoaderService {
|
|
15
|
+
constructor(_http, config) {
|
|
16
|
+
this._http = _http;
|
|
17
|
+
this.configUrl = './assets/config.json';
|
|
18
|
+
this.configObject = null;
|
|
19
|
+
this.configSubject = new Subject();
|
|
20
|
+
if (config) {
|
|
21
|
+
this.configUrl = config.configUrl;
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
loadConfig() {
|
|
25
|
+
const urls = Array.isArray(this.configUrl)
|
|
26
|
+
? this.configUrl
|
|
27
|
+
: [this.configUrl];
|
|
28
|
+
const observables = urls.map((url) => this.makeHttpCall(url));
|
|
29
|
+
return forkJoin(observables).pipe(tap((configDataArray) => {
|
|
30
|
+
this.configObject = configDataArray.reduce((acc, configData) => {
|
|
31
|
+
return Object.assign(Object.assign({}, acc), configData);
|
|
32
|
+
}, {});
|
|
33
|
+
this.configSubject.next(this.configObject);
|
|
34
|
+
}), catchError((err) => {
|
|
35
|
+
console.error('Error loading config: ', err);
|
|
36
|
+
this.configObject = null;
|
|
37
|
+
this.configSubject.next(this.configObject);
|
|
38
|
+
return of(null);
|
|
39
|
+
}));
|
|
40
|
+
}
|
|
41
|
+
makeHttpCall(url) {
|
|
42
|
+
return this._http.get(url).pipe(take(1));
|
|
43
|
+
}
|
|
44
|
+
getConfig() {
|
|
45
|
+
return this.configObject;
|
|
46
|
+
}
|
|
47
|
+
getConfigObjectKey(key) {
|
|
48
|
+
return this.configObject ? this.configObject[key] : null;
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
RuntimeConfigLoaderService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.5", ngImport: i0, type: RuntimeConfigLoaderService, deps: [{ token: i1.HttpClient }, { token: RuntimeConfig, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
52
|
+
RuntimeConfigLoaderService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.5", ngImport: i0, type: RuntimeConfigLoaderService });
|
|
53
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.5", ngImport: i0, type: RuntimeConfigLoaderService, decorators: [{
|
|
54
|
+
type: Injectable
|
|
55
|
+
}], ctorParameters: function () {
|
|
56
|
+
return [{ type: i1.HttpClient }, { type: RuntimeConfig, decorators: [{
|
|
57
|
+
type: Optional
|
|
58
|
+
}] }];
|
|
59
|
+
} });
|
|
60
|
+
|
|
61
|
+
function initConfig(configSvc) {
|
|
62
|
+
return () => configSvc.loadConfig();
|
|
63
|
+
}
|
|
64
|
+
class RuntimeConfigLoaderModule {
|
|
65
|
+
static forRoot(config) {
|
|
66
|
+
return {
|
|
67
|
+
ngModule: RuntimeConfigLoaderModule,
|
|
68
|
+
providers: [
|
|
69
|
+
{
|
|
70
|
+
provide: RuntimeConfig,
|
|
71
|
+
useValue: config,
|
|
72
|
+
},
|
|
73
|
+
RuntimeConfigLoaderService,
|
|
74
|
+
],
|
|
75
|
+
};
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
RuntimeConfigLoaderModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.5", ngImport: i0, type: RuntimeConfigLoaderModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
79
|
+
RuntimeConfigLoaderModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.5", ngImport: i0, type: RuntimeConfigLoaderModule, imports: [HttpClientModule] });
|
|
80
|
+
RuntimeConfigLoaderModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.5", ngImport: i0, type: RuntimeConfigLoaderModule, providers: [
|
|
81
|
+
RuntimeConfigLoaderService,
|
|
82
|
+
{
|
|
83
|
+
provide: APP_INITIALIZER,
|
|
84
|
+
useFactory: initConfig,
|
|
85
|
+
deps: [RuntimeConfigLoaderService],
|
|
86
|
+
multi: true,
|
|
87
|
+
},
|
|
88
|
+
], imports: [[HttpClientModule]] });
|
|
89
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.5", ngImport: i0, type: RuntimeConfigLoaderModule, decorators: [{
|
|
90
|
+
type: NgModule,
|
|
91
|
+
args: [{
|
|
92
|
+
imports: [HttpClientModule],
|
|
93
|
+
providers: [
|
|
94
|
+
RuntimeConfigLoaderService,
|
|
95
|
+
{
|
|
96
|
+
provide: APP_INITIALIZER,
|
|
97
|
+
useFactory: initConfig,
|
|
98
|
+
deps: [RuntimeConfigLoaderService],
|
|
99
|
+
multi: true,
|
|
100
|
+
},
|
|
101
|
+
],
|
|
102
|
+
}]
|
|
103
|
+
}] });
|
|
104
|
+
|
|
105
|
+
/**
|
|
106
|
+
* Generated bundle index. Do not edit.
|
|
107
|
+
*/
|
|
108
|
+
|
|
109
|
+
export { RuntimeConfig, RuntimeConfigLoaderModule, RuntimeConfigLoaderService, initConfig };
|
|
110
|
+
//# sourceMappingURL=runtime-config-loader.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runtime-config-loader.mjs","sources":["../../../../libs/runtime-config-loader/src/lib/runtime-config.ts","../../../../libs/runtime-config-loader/src/lib/runtime-config-loader/runtime-config-loader.service.ts","../../../../libs/runtime-config-loader/src/lib/runtime-config-loader.module.ts","../../../../libs/runtime-config-loader/src/runtime-config-loader.ts"],"sourcesContent":["export class RuntimeConfig {\n\tconfigUrl: string | string[];\n\n\tconstructor(obj: any = {}) {\n\t\tthis.configUrl = obj.configUrl || './assets/config.json';\n\t}\n}\n","import { HttpClient } from '@angular/common/http';\nimport { Injectable, Optional } from '@angular/core';\nimport { RuntimeConfig } from '../runtime-config';\nimport { forkJoin, Observable, of, Subject, zip } from 'rxjs';\nimport { catchError, take, tap } from 'rxjs/operators';\n\n@Injectable()\nexport class RuntimeConfigLoaderService {\n\tprivate configUrl: string | string[] = './assets/config.json';\n\tprivate configObject: any = null;\n\tpublic configSubject: Subject<any> = new Subject<any>();\n\n\tconstructor(private _http: HttpClient, @Optional() config: RuntimeConfig) {\n\t\tif (config) {\n\t\t\tthis.configUrl = config.configUrl;\n\t\t}\n\t}\n\n\tloadConfig(): Observable<any> {\n\t\tconst urls: string[] = Array.isArray(this.configUrl)\n\t\t\t? this.configUrl\n\t\t\t: [this.configUrl];\n\n\t\tconst observables: Observable<any>[] = urls.map((url) =>\n\t\t\tthis.makeHttpCall(url)\n\t\t);\n\n\t\treturn forkJoin(observables).pipe(\n\t\t\ttap((configDataArray: any[]) => {\n\t\t\t\tthis.configObject = configDataArray.reduce(\n\t\t\t\t\t(acc, configData) => {\n\t\t\t\t\t\treturn { ...acc, ...configData };\n\t\t\t\t\t},\n\t\t\t\t\t{}\n\t\t\t\t);\n\n\t\t\t\tthis.configSubject.next(this.configObject);\n\t\t\t}),\n\t\t\tcatchError((err: any) => {\n\t\t\t\tconsole.error('Error loading config: ', err);\n\t\t\t\tthis.configObject = null;\n\t\t\t\tthis.configSubject.next(this.configObject);\n\t\t\t\treturn of(null);\n\t\t\t})\n\t\t);\n\t}\n\n\tprivate makeHttpCall(url: string): Observable<any> {\n\t\treturn this._http.get(url).pipe(take(1));\n\t}\n\n\tgetConfig() {\n\t\treturn this.configObject;\n\t}\n\n\tgetConfigObjectKey(key: string) {\n\t\treturn this.configObject ? this.configObject[key] : null;\n\t}\n}\n","import { HttpClientModule } from '@angular/common/http';\nimport { APP_INITIALIZER, ModuleWithProviders, NgModule } from '@angular/core';\nimport { RuntimeConfig } from './runtime-config';\nimport { RuntimeConfigLoaderService } from './runtime-config-loader/runtime-config-loader.service';\n\nexport function initConfig(configSvc: RuntimeConfigLoaderService) {\n\treturn () => configSvc.loadConfig();\n}\n\n@NgModule({\n\timports: [HttpClientModule],\n\tproviders: [\n\t\tRuntimeConfigLoaderService,\n\t\t{\n\t\t\tprovide: APP_INITIALIZER,\n\t\t\tuseFactory: initConfig,\n\t\t\tdeps: [RuntimeConfigLoaderService],\n\t\t\tmulti: true,\n\t\t},\n\t],\n})\nexport class RuntimeConfigLoaderModule {\n\tstatic forRoot(\n\t\tconfig: RuntimeConfig\n\t): ModuleWithProviders<RuntimeConfigLoaderModule> {\n\t\treturn {\n\t\t\tngModule: RuntimeConfigLoaderModule,\n\t\t\tproviders: [\n\t\t\t\t{\n\t\t\t\t\tprovide: RuntimeConfig,\n\t\t\t\t\tuseValue: config,\n\t\t\t\t},\n\t\t\t\tRuntimeConfigLoaderService,\n\t\t\t],\n\t\t};\n\t}\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i2.RuntimeConfig"],"mappings":"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"}
|
|
@@ -28,7 +28,7 @@ class RuntimeConfigLoaderService {
|
|
|
28
28
|
const observables = urls.map((url) => this.makeHttpCall(url));
|
|
29
29
|
return forkJoin(observables).pipe(tap((configDataArray) => {
|
|
30
30
|
this.configObject = configDataArray.reduce((acc, configData) => {
|
|
31
|
-
return
|
|
31
|
+
return { ...acc, ...configData };
|
|
32
32
|
}, {});
|
|
33
33
|
this.configSubject.next(this.configObject);
|
|
34
34
|
}), catchError((err) => {
|
|
@@ -48,9 +48,9 @@ class RuntimeConfigLoaderService {
|
|
|
48
48
|
return this.configObject ? this.configObject[key] : null;
|
|
49
49
|
}
|
|
50
50
|
}
|
|
51
|
-
RuntimeConfigLoaderService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
52
|
-
RuntimeConfigLoaderService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
53
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
51
|
+
RuntimeConfigLoaderService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.5", ngImport: i0, type: RuntimeConfigLoaderService, deps: [{ token: i1.HttpClient }, { token: RuntimeConfig, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
52
|
+
RuntimeConfigLoaderService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.5", ngImport: i0, type: RuntimeConfigLoaderService });
|
|
53
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.5", ngImport: i0, type: RuntimeConfigLoaderService, decorators: [{
|
|
54
54
|
type: Injectable
|
|
55
55
|
}], ctorParameters: function () { return [{ type: i1.HttpClient }, { type: RuntimeConfig, decorators: [{
|
|
56
56
|
type: Optional
|
|
@@ -73,9 +73,9 @@ class RuntimeConfigLoaderModule {
|
|
|
73
73
|
};
|
|
74
74
|
}
|
|
75
75
|
}
|
|
76
|
-
RuntimeConfigLoaderModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
77
|
-
RuntimeConfigLoaderModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "
|
|
78
|
-
RuntimeConfigLoaderModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "
|
|
76
|
+
RuntimeConfigLoaderModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.5", ngImport: i0, type: RuntimeConfigLoaderModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
77
|
+
RuntimeConfigLoaderModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.5", ngImport: i0, type: RuntimeConfigLoaderModule, imports: [HttpClientModule] });
|
|
78
|
+
RuntimeConfigLoaderModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.5", ngImport: i0, type: RuntimeConfigLoaderModule, providers: [
|
|
79
79
|
RuntimeConfigLoaderService,
|
|
80
80
|
{
|
|
81
81
|
provide: APP_INITIALIZER,
|
|
@@ -84,7 +84,7 @@ RuntimeConfigLoaderModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0
|
|
|
84
84
|
multi: true,
|
|
85
85
|
},
|
|
86
86
|
], imports: [[HttpClientModule]] });
|
|
87
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
87
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.5", ngImport: i0, type: RuntimeConfigLoaderModule, decorators: [{
|
|
88
88
|
type: NgModule,
|
|
89
89
|
args: [{
|
|
90
90
|
imports: [HttpClientModule],
|
|
@@ -105,4 +105,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.6", ngImpor
|
|
|
105
105
|
*/
|
|
106
106
|
|
|
107
107
|
export { RuntimeConfig, RuntimeConfigLoaderModule, RuntimeConfigLoaderService, initConfig };
|
|
108
|
-
//# sourceMappingURL=runtime-config-loader.
|
|
108
|
+
//# sourceMappingURL=runtime-config-loader.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runtime-config-loader.mjs","sources":["../../../../libs/runtime-config-loader/src/lib/runtime-config.ts","../../../../libs/runtime-config-loader/src/lib/runtime-config-loader/runtime-config-loader.service.ts","../../../../libs/runtime-config-loader/src/lib/runtime-config-loader.module.ts","../../../../libs/runtime-config-loader/src/runtime-config-loader.ts"],"sourcesContent":["export class RuntimeConfig {\n\tconfigUrl: string | string[];\n\n\tconstructor(obj: any = {}) {\n\t\tthis.configUrl = obj.configUrl || './assets/config.json';\n\t}\n}\n","import { HttpClient } from '@angular/common/http';\nimport { Injectable, Optional } from '@angular/core';\nimport { RuntimeConfig } from '../runtime-config';\nimport { forkJoin, Observable, of, Subject, zip } from 'rxjs';\nimport { catchError, take, tap } from 'rxjs/operators';\n\n@Injectable()\nexport class RuntimeConfigLoaderService {\n\tprivate configUrl: string | string[] = './assets/config.json';\n\tprivate configObject: any = null;\n\tpublic configSubject: Subject<any> = new Subject<any>();\n\n\tconstructor(private _http: HttpClient, @Optional() config: RuntimeConfig) {\n\t\tif (config) {\n\t\t\tthis.configUrl = config.configUrl;\n\t\t}\n\t}\n\n\tloadConfig(): Observable<any> {\n\t\tconst urls: string[] = Array.isArray(this.configUrl)\n\t\t\t? this.configUrl\n\t\t\t: [this.configUrl];\n\n\t\tconst observables: Observable<any>[] = urls.map((url) =>\n\t\t\tthis.makeHttpCall(url)\n\t\t);\n\n\t\treturn forkJoin(observables).pipe(\n\t\t\ttap((configDataArray: any[]) => {\n\t\t\t\tthis.configObject = configDataArray.reduce(\n\t\t\t\t\t(acc, configData) => {\n\t\t\t\t\t\treturn { ...acc, ...configData };\n\t\t\t\t\t},\n\t\t\t\t\t{}\n\t\t\t\t);\n\n\t\t\t\tthis.configSubject.next(this.configObject);\n\t\t\t}),\n\t\t\tcatchError((err: any) => {\n\t\t\t\tconsole.error('Error loading config: ', err);\n\t\t\t\tthis.configObject = null;\n\t\t\t\tthis.configSubject.next(this.configObject);\n\t\t\t\treturn of(null);\n\t\t\t})\n\t\t);\n\t}\n\n\tprivate makeHttpCall(url: string): Observable<any> {\n\t\treturn this._http.get(url).pipe(take(1));\n\t}\n\n\tgetConfig() {\n\t\treturn this.configObject;\n\t}\n\n\tgetConfigObjectKey(key: string) {\n\t\treturn this.configObject ? this.configObject[key] : null;\n\t}\n}\n","import { HttpClientModule } from '@angular/common/http';\nimport { APP_INITIALIZER, ModuleWithProviders, NgModule } from '@angular/core';\nimport { RuntimeConfig } from './runtime-config';\nimport { RuntimeConfigLoaderService } from './runtime-config-loader/runtime-config-loader.service';\n\nexport function initConfig(configSvc: RuntimeConfigLoaderService) {\n\treturn () => configSvc.loadConfig();\n}\n\n@NgModule({\n\timports: [HttpClientModule],\n\tproviders: [\n\t\tRuntimeConfigLoaderService,\n\t\t{\n\t\t\tprovide: APP_INITIALIZER,\n\t\t\tuseFactory: initConfig,\n\t\t\tdeps: [RuntimeConfigLoaderService],\n\t\t\tmulti: true,\n\t\t},\n\t],\n})\nexport class RuntimeConfigLoaderModule {\n\tstatic forRoot(\n\t\tconfig: RuntimeConfig\n\t): ModuleWithProviders<RuntimeConfigLoaderModule> {\n\t\treturn {\n\t\t\tngModule: RuntimeConfigLoaderModule,\n\t\t\tproviders: [\n\t\t\t\t{\n\t\t\t\t\tprovide: RuntimeConfig,\n\t\t\t\t\tuseValue: config,\n\t\t\t\t},\n\t\t\t\tRuntimeConfigLoaderService,\n\t\t\t],\n\t\t};\n\t}\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i2.RuntimeConfig"],"mappings":";;;;;;;MAAa,aAAa,CAAA;AAGzB,IAAA,WAAA,CAAY,MAAW,EAAE,EAAA;QACxB,IAAI,CAAC,SAAS,GAAG,GAAG,CAAC,SAAS,IAAI,sBAAsB,CAAC;KACzD;AACD;;MCCY,0BAA0B,CAAA;IAKtC,WAAoB,CAAA,KAAiB,EAAc,MAAqB,EAAA;QAApD,IAAK,CAAA,KAAA,GAAL,KAAK,CAAY;QAJ7B,IAAS,CAAA,SAAA,GAAsB,sBAAsB,CAAC;QACtD,IAAY,CAAA,YAAA,GAAQ,IAAI,CAAC;AAC1B,QAAA,IAAA,CAAA,aAAa,GAAiB,IAAI,OAAO,EAAO,CAAC;AAGvD,QAAA,IAAI,MAAM,EAAE;AACX,YAAA,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC;AAClC,SAAA;KACD;IAED,UAAU,GAAA;QACT,MAAM,IAAI,GAAa,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC;cACjD,IAAI,CAAC,SAAS;AAChB,cAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;AAEpB,QAAA,MAAM,WAAW,GAAsB,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,KACnD,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CACtB,CAAC;AAEF,QAAA,OAAO,QAAQ,CAAC,WAAW,CAAC,CAAC,IAAI,CAChC,GAAG,CAAC,CAAC,eAAsB,KAAI;AAC9B,YAAA,IAAI,CAAC,YAAY,GAAG,eAAe,CAAC,MAAM,CACzC,CAAC,GAAG,EAAE,UAAU,KAAI;AACnB,gBAAA,OAAO,EAAE,GAAG,GAAG,EAAE,GAAG,UAAU,EAAE,CAAC;aACjC,EACD,EAAE,CACF,CAAC;YAEF,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;AAC5C,SAAC,CAAC,EACF,UAAU,CAAC,CAAC,GAAQ,KAAI;AACvB,YAAA,OAAO,CAAC,KAAK,CAAC,wBAAwB,EAAE,GAAG,CAAC,CAAC;AAC7C,YAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;YACzB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;AAC3C,YAAA,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC;SAChB,CAAC,CACF,CAAC;KACF;AAEO,IAAA,YAAY,CAAC,GAAW,EAAA;AAC/B,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;KACzC;IAED,SAAS,GAAA;QACR,OAAO,IAAI,CAAC,YAAY,CAAC;KACzB;AAED,IAAA,kBAAkB,CAAC,GAAW,EAAA;AAC7B,QAAA,OAAO,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;KACzD;;uHAlDW,0BAA0B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAAA,aAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;2HAA1B,0BAA0B,EAAA,CAAA,CAAA;2FAA1B,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBADtC,UAAU;;0BAM8B,QAAQ;;;ACP3C,SAAU,UAAU,CAAC,SAAqC,EAAA;AAC/D,IAAA,OAAO,MAAM,SAAS,CAAC,UAAU,EAAE,CAAC;AACrC,CAAC;MAcY,yBAAyB,CAAA;IACrC,OAAO,OAAO,CACb,MAAqB,EAAA;QAErB,OAAO;AACN,YAAA,QAAQ,EAAE,yBAAyB;AACnC,YAAA,SAAS,EAAE;AACV,gBAAA;AACC,oBAAA,OAAO,EAAE,aAAa;AACtB,oBAAA,QAAQ,EAAE,MAAM;AAChB,iBAAA;gBACD,0BAA0B;AAC1B,aAAA;SACD,CAAC;KACF;;sHAdW,yBAAyB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAzB,yBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,yBAAyB,YAX3B,gBAAgB,CAAA,EAAA,CAAA,CAAA;AAWd,yBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,yBAAyB,EAV1B,SAAA,EAAA;QACV,0BAA0B;AAC1B,QAAA;AACC,YAAA,OAAO,EAAE,eAAe;AACxB,YAAA,UAAU,EAAE,UAAU;YACtB,IAAI,EAAE,CAAC,0BAA0B,CAAC;AAClC,YAAA,KAAK,EAAE,IAAI;AACX,SAAA;KACD,EATQ,OAAA,EAAA,CAAA,CAAC,gBAAgB,CAAC,CAAA,EAAA,CAAA,CAAA;2FAWf,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBAZrC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACT,OAAO,EAAE,CAAC,gBAAgB,CAAC;AAC3B,oBAAA,SAAS,EAAE;wBACV,0BAA0B;AAC1B,wBAAA;AACC,4BAAA,OAAO,EAAE,eAAe;AACxB,4BAAA,UAAU,EAAE,UAAU;4BACtB,IAAI,EAAE,CAAC,0BAA0B,CAAC;AAClC,4BAAA,KAAK,EAAE,IAAI;AACX,yBAAA;AACD,qBAAA;AACD,iBAAA,CAAA;;;ACpBD;;AAEG;;;;"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "runtime-config-loader",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "5.0.0",
|
|
4
4
|
"author": {
|
|
5
5
|
"email": "preston.j.lamb@gmail.com",
|
|
6
6
|
"name": "Preston Lamb",
|
|
@@ -23,18 +23,32 @@
|
|
|
23
23
|
"config"
|
|
24
24
|
],
|
|
25
25
|
"peerDependencies": {
|
|
26
|
-
"@angular/common": ">=
|
|
27
|
-
"@angular/core": ">=
|
|
28
|
-
"rxjs": "~6.6.0"
|
|
26
|
+
"@angular/common": ">=13.0.0",
|
|
27
|
+
"@angular/core": ">=13.0.0",
|
|
28
|
+
"rxjs": "~6.6.0",
|
|
29
|
+
"@angular/platform-browser-dynamic": "13.3.5"
|
|
29
30
|
},
|
|
30
31
|
"dependencies": {
|
|
31
32
|
"tslib": "^2.3.0"
|
|
32
33
|
},
|
|
33
|
-
"
|
|
34
|
-
"
|
|
35
|
-
"
|
|
36
|
-
"
|
|
37
|
-
"fesm2015": "fesm2015/runtime-config-loader.
|
|
34
|
+
"module": "fesm2015/runtime-config-loader.mjs",
|
|
35
|
+
"es2020": "fesm2020/runtime-config-loader.mjs",
|
|
36
|
+
"esm2020": "esm2020/runtime-config-loader.mjs",
|
|
37
|
+
"fesm2020": "fesm2020/runtime-config-loader.mjs",
|
|
38
|
+
"fesm2015": "fesm2015/runtime-config-loader.mjs",
|
|
38
39
|
"typings": "runtime-config-loader.d.ts",
|
|
40
|
+
"exports": {
|
|
41
|
+
"./package.json": {
|
|
42
|
+
"default": "./package.json"
|
|
43
|
+
},
|
|
44
|
+
".": {
|
|
45
|
+
"types": "./runtime-config-loader.d.ts",
|
|
46
|
+
"esm2020": "./esm2020/runtime-config-loader.mjs",
|
|
47
|
+
"es2020": "./fesm2020/runtime-config-loader.mjs",
|
|
48
|
+
"es2015": "./fesm2015/runtime-config-loader.mjs",
|
|
49
|
+
"node": "./fesm2015/runtime-config-loader.mjs",
|
|
50
|
+
"default": "./fesm2020/runtime-config-loader.mjs"
|
|
51
|
+
}
|
|
52
|
+
},
|
|
39
53
|
"sideEffects": false
|
|
40
54
|
}
|
|
Binary file
|
|
@@ -1,146 +0,0 @@
|
|
|
1
|
-
(function (global, factory) {
|
|
2
|
-
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@angular/common/http'), require('@angular/core'), require('rxjs'), require('rxjs/operators')) :
|
|
3
|
-
typeof define === 'function' && define.amd ? define('runtime-config-loader', ['exports', '@angular/common/http', '@angular/core', 'rxjs', 'rxjs/operators'], factory) :
|
|
4
|
-
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global['runtime-config-loader'] = {}, global.ng.common.http, global.ng.core, global.rxjs, global.rxjs.operators));
|
|
5
|
-
}(this, (function (exports, i1, i0, rxjs, operators) { 'use strict';
|
|
6
|
-
|
|
7
|
-
function _interopNamespace(e) {
|
|
8
|
-
if (e && e.__esModule) return e;
|
|
9
|
-
var n = Object.create(null);
|
|
10
|
-
if (e) {
|
|
11
|
-
Object.keys(e).forEach(function (k) {
|
|
12
|
-
if (k !== 'default') {
|
|
13
|
-
var d = Object.getOwnPropertyDescriptor(e, k);
|
|
14
|
-
Object.defineProperty(n, k, d.get ? d : {
|
|
15
|
-
enumerable: true,
|
|
16
|
-
get: function () {
|
|
17
|
-
return e[k];
|
|
18
|
-
}
|
|
19
|
-
});
|
|
20
|
-
}
|
|
21
|
-
});
|
|
22
|
-
}
|
|
23
|
-
n['default'] = e;
|
|
24
|
-
return Object.freeze(n);
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
var i1__namespace = /*#__PURE__*/_interopNamespace(i1);
|
|
28
|
-
var i0__namespace = /*#__PURE__*/_interopNamespace(i0);
|
|
29
|
-
|
|
30
|
-
var RuntimeConfig = /** @class */ (function () {
|
|
31
|
-
function RuntimeConfig(obj) {
|
|
32
|
-
if (obj === void 0) { obj = {}; }
|
|
33
|
-
this.configUrl = obj.configUrl || './assets/config.json';
|
|
34
|
-
}
|
|
35
|
-
return RuntimeConfig;
|
|
36
|
-
}());
|
|
37
|
-
|
|
38
|
-
var RuntimeConfigLoaderService = /** @class */ (function () {
|
|
39
|
-
function RuntimeConfigLoaderService(_http, config) {
|
|
40
|
-
this._http = _http;
|
|
41
|
-
this.configUrl = './assets/config.json';
|
|
42
|
-
this.configObject = null;
|
|
43
|
-
this.configSubject = new rxjs.Subject();
|
|
44
|
-
if (config) {
|
|
45
|
-
this.configUrl = config.configUrl;
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
RuntimeConfigLoaderService.prototype.loadConfig = function () {
|
|
49
|
-
var _this = this;
|
|
50
|
-
var urls = Array.isArray(this.configUrl)
|
|
51
|
-
? this.configUrl
|
|
52
|
-
: [this.configUrl];
|
|
53
|
-
var observables = urls.map(function (url) { return _this.makeHttpCall(url); });
|
|
54
|
-
return rxjs.forkJoin(observables).pipe(operators.tap(function (configDataArray) {
|
|
55
|
-
_this.configObject = configDataArray.reduce(function (acc, configData) {
|
|
56
|
-
return Object.assign(Object.assign({}, acc), configData);
|
|
57
|
-
}, {});
|
|
58
|
-
_this.configSubject.next(_this.configObject);
|
|
59
|
-
}), operators.catchError(function (err) {
|
|
60
|
-
console.error('Error loading config: ', err);
|
|
61
|
-
_this.configObject = null;
|
|
62
|
-
_this.configSubject.next(_this.configObject);
|
|
63
|
-
return rxjs.of(null);
|
|
64
|
-
}));
|
|
65
|
-
};
|
|
66
|
-
RuntimeConfigLoaderService.prototype.makeHttpCall = function (url) {
|
|
67
|
-
return this._http.get(url).pipe(operators.take(1));
|
|
68
|
-
};
|
|
69
|
-
RuntimeConfigLoaderService.prototype.getConfig = function () {
|
|
70
|
-
return this.configObject;
|
|
71
|
-
};
|
|
72
|
-
RuntimeConfigLoaderService.prototype.getConfigObjectKey = function (key) {
|
|
73
|
-
return this.configObject ? this.configObject[key] : null;
|
|
74
|
-
};
|
|
75
|
-
return RuntimeConfigLoaderService;
|
|
76
|
-
}());
|
|
77
|
-
RuntimeConfigLoaderService.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.6", ngImport: i0__namespace, type: RuntimeConfigLoaderService, deps: [{ token: i1__namespace.HttpClient }, { token: RuntimeConfig, optional: true }], target: i0__namespace.ɵɵFactoryTarget.Injectable });
|
|
78
|
-
RuntimeConfigLoaderService.ɵprov = i0__namespace.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.6", ngImport: i0__namespace, type: RuntimeConfigLoaderService });
|
|
79
|
-
i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.6", ngImport: i0__namespace, type: RuntimeConfigLoaderService, decorators: [{
|
|
80
|
-
type: i0.Injectable
|
|
81
|
-
}], ctorParameters: function () {
|
|
82
|
-
return [{ type: i1__namespace.HttpClient }, { type: RuntimeConfig, decorators: [{
|
|
83
|
-
type: i0.Optional
|
|
84
|
-
}] }];
|
|
85
|
-
} });
|
|
86
|
-
|
|
87
|
-
function initConfig(configSvc) {
|
|
88
|
-
return function () { return configSvc.loadConfig(); };
|
|
89
|
-
}
|
|
90
|
-
var RuntimeConfigLoaderModule = /** @class */ (function () {
|
|
91
|
-
function RuntimeConfigLoaderModule() {
|
|
92
|
-
}
|
|
93
|
-
RuntimeConfigLoaderModule.forRoot = function (config) {
|
|
94
|
-
return {
|
|
95
|
-
ngModule: RuntimeConfigLoaderModule,
|
|
96
|
-
providers: [
|
|
97
|
-
{
|
|
98
|
-
provide: RuntimeConfig,
|
|
99
|
-
useValue: config,
|
|
100
|
-
},
|
|
101
|
-
RuntimeConfigLoaderService,
|
|
102
|
-
],
|
|
103
|
-
};
|
|
104
|
-
};
|
|
105
|
-
return RuntimeConfigLoaderModule;
|
|
106
|
-
}());
|
|
107
|
-
RuntimeConfigLoaderModule.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.6", ngImport: i0__namespace, type: RuntimeConfigLoaderModule, deps: [], target: i0__namespace.ɵɵFactoryTarget.NgModule });
|
|
108
|
-
RuntimeConfigLoaderModule.ɵmod = i0__namespace.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.6", ngImport: i0__namespace, type: RuntimeConfigLoaderModule, imports: [i1.HttpClientModule] });
|
|
109
|
-
RuntimeConfigLoaderModule.ɵinj = i0__namespace.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.6", ngImport: i0__namespace, type: RuntimeConfigLoaderModule, providers: [
|
|
110
|
-
RuntimeConfigLoaderService,
|
|
111
|
-
{
|
|
112
|
-
provide: i0.APP_INITIALIZER,
|
|
113
|
-
useFactory: initConfig,
|
|
114
|
-
deps: [RuntimeConfigLoaderService],
|
|
115
|
-
multi: true,
|
|
116
|
-
},
|
|
117
|
-
], imports: [[i1.HttpClientModule]] });
|
|
118
|
-
i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.6", ngImport: i0__namespace, type: RuntimeConfigLoaderModule, decorators: [{
|
|
119
|
-
type: i0.NgModule,
|
|
120
|
-
args: [{
|
|
121
|
-
imports: [i1.HttpClientModule],
|
|
122
|
-
providers: [
|
|
123
|
-
RuntimeConfigLoaderService,
|
|
124
|
-
{
|
|
125
|
-
provide: i0.APP_INITIALIZER,
|
|
126
|
-
useFactory: initConfig,
|
|
127
|
-
deps: [RuntimeConfigLoaderService],
|
|
128
|
-
multi: true,
|
|
129
|
-
},
|
|
130
|
-
],
|
|
131
|
-
}]
|
|
132
|
-
}] });
|
|
133
|
-
|
|
134
|
-
/**
|
|
135
|
-
* Generated bundle index. Do not edit.
|
|
136
|
-
*/
|
|
137
|
-
|
|
138
|
-
exports.RuntimeConfig = RuntimeConfig;
|
|
139
|
-
exports.RuntimeConfigLoaderModule = RuntimeConfigLoaderModule;
|
|
140
|
-
exports.RuntimeConfigLoaderService = RuntimeConfigLoaderService;
|
|
141
|
-
exports.initConfig = initConfig;
|
|
142
|
-
|
|
143
|
-
Object.defineProperty(exports, '__esModule', { value: true });
|
|
144
|
-
|
|
145
|
-
})));
|
|
146
|
-
//# sourceMappingURL=runtime-config-loader.umd.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"runtime-config-loader.umd.js","sources":["../../../../libs/runtime-config-loader/src/lib/runtime-config.ts","../../../../libs/runtime-config-loader/src/lib/runtime-config-loader/runtime-config-loader.service.ts","../../../../libs/runtime-config-loader/src/lib/runtime-config-loader.module.ts","../../../../libs/runtime-config-loader/src/runtime-config-loader.ts"],"sourcesContent":["export class RuntimeConfig {\n\tconfigUrl: string | string[];\n\n\tconstructor(obj: any = {}) {\n\t\tthis.configUrl = obj.configUrl || './assets/config.json';\n\t}\n}\n","import { HttpClient } from '@angular/common/http';\nimport { Injectable, Optional } from '@angular/core';\nimport { RuntimeConfig } from '../runtime-config';\nimport { forkJoin, Observable, of, Subject, zip } from 'rxjs';\nimport { catchError, take, tap } from 'rxjs/operators';\n\n@Injectable()\nexport class RuntimeConfigLoaderService {\n\tprivate configUrl: string | string[] = './assets/config.json';\n\tprivate configObject: any = null;\n\tpublic configSubject: Subject<any> = new Subject<any>();\n\n\tconstructor(private _http: HttpClient, @Optional() config: RuntimeConfig) {\n\t\tif (config) {\n\t\t\tthis.configUrl = config.configUrl;\n\t\t}\n\t}\n\n\tloadConfig(): Observable<any> {\n\t\tconst urls: string[] = Array.isArray(this.configUrl)\n\t\t\t? this.configUrl\n\t\t\t: [this.configUrl];\n\n\t\tconst observables: Observable<any>[] = urls.map((url) =>\n\t\t\tthis.makeHttpCall(url)\n\t\t);\n\n\t\treturn forkJoin(observables).pipe(\n\t\t\ttap((configDataArray: any[]) => {\n\t\t\t\tthis.configObject = configDataArray.reduce(\n\t\t\t\t\t(acc, configData) => {\n\t\t\t\t\t\treturn { ...acc, ...configData };\n\t\t\t\t\t},\n\t\t\t\t\t{}\n\t\t\t\t);\n\n\t\t\t\tthis.configSubject.next(this.configObject);\n\t\t\t}),\n\t\t\tcatchError((err: any) => {\n\t\t\t\tconsole.error('Error loading config: ', err);\n\t\t\t\tthis.configObject = null;\n\t\t\t\tthis.configSubject.next(this.configObject);\n\t\t\t\treturn of(null);\n\t\t\t})\n\t\t);\n\t}\n\n\tprivate makeHttpCall(url: string): Observable<any> {\n\t\treturn this._http.get(url).pipe(take(1));\n\t}\n\n\tgetConfig() {\n\t\treturn this.configObject;\n\t}\n\n\tgetConfigObjectKey(key: string) {\n\t\treturn this.configObject ? this.configObject[key] : null;\n\t}\n}\n","import { HttpClientModule } from '@angular/common/http';\nimport { APP_INITIALIZER, ModuleWithProviders, NgModule } from '@angular/core';\nimport { RuntimeConfig } from './runtime-config';\nimport { RuntimeConfigLoaderService } from './runtime-config-loader/runtime-config-loader.service';\n\nexport function initConfig(configSvc: RuntimeConfigLoaderService) {\n\treturn () => configSvc.loadConfig();\n}\n\n@NgModule({\n\timports: [HttpClientModule],\n\tproviders: [\n\t\tRuntimeConfigLoaderService,\n\t\t{\n\t\t\tprovide: APP_INITIALIZER,\n\t\t\tuseFactory: initConfig,\n\t\t\tdeps: [RuntimeConfigLoaderService],\n\t\t\tmulti: true,\n\t\t},\n\t],\n})\nexport class RuntimeConfigLoaderModule {\n\tstatic forRoot(\n\t\tconfig: RuntimeConfig\n\t): ModuleWithProviders<RuntimeConfigLoaderModule> {\n\t\treturn {\n\t\t\tngModule: RuntimeConfigLoaderModule,\n\t\t\tproviders: [\n\t\t\t\t{\n\t\t\t\t\tprovide: RuntimeConfig,\n\t\t\t\t\tuseValue: config,\n\t\t\t\t},\n\t\t\t\tRuntimeConfigLoaderService,\n\t\t\t],\n\t\t};\n\t}\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["Subject","forkJoin","tap","catchError","of","take","Injectable","Optional","HttpClientModule","APP_INITIALIZER","NgModule"],"mappings":"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"}
|
package/esm2015/index.js
DELETED
package/esm2015/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../libs/runtime-config-loader/src/index.ts"],"names":[],"mappings":"AAAA,cAAc,oCAAoC,CAAC;AACnD,cAAc,sBAAsB,CAAC;AACrC,cAAc,2DAA2D,CAAC","sourcesContent":["export * from './lib/runtime-config-loader.module';\nexport * from './lib/runtime-config';\nexport * from './lib/runtime-config-loader/runtime-config-loader.service';\n"]}
|
|
@@ -1,53 +0,0 @@
|
|
|
1
|
-
import { HttpClient } from '@angular/common/http';
|
|
2
|
-
import { Injectable, Optional } from '@angular/core';
|
|
3
|
-
import { RuntimeConfig } from '../runtime-config';
|
|
4
|
-
import { forkJoin, of, Subject } from 'rxjs';
|
|
5
|
-
import { catchError, take, tap } from 'rxjs/operators';
|
|
6
|
-
import * as i0 from "@angular/core";
|
|
7
|
-
import * as i1 from "@angular/common/http";
|
|
8
|
-
import * as i2 from "../runtime-config";
|
|
9
|
-
export class RuntimeConfigLoaderService {
|
|
10
|
-
constructor(_http, config) {
|
|
11
|
-
this._http = _http;
|
|
12
|
-
this.configUrl = './assets/config.json';
|
|
13
|
-
this.configObject = null;
|
|
14
|
-
this.configSubject = new Subject();
|
|
15
|
-
if (config) {
|
|
16
|
-
this.configUrl = config.configUrl;
|
|
17
|
-
}
|
|
18
|
-
}
|
|
19
|
-
loadConfig() {
|
|
20
|
-
const urls = Array.isArray(this.configUrl)
|
|
21
|
-
? this.configUrl
|
|
22
|
-
: [this.configUrl];
|
|
23
|
-
const observables = urls.map((url) => this.makeHttpCall(url));
|
|
24
|
-
return forkJoin(observables).pipe(tap((configDataArray) => {
|
|
25
|
-
this.configObject = configDataArray.reduce((acc, configData) => {
|
|
26
|
-
return Object.assign(Object.assign({}, acc), configData);
|
|
27
|
-
}, {});
|
|
28
|
-
this.configSubject.next(this.configObject);
|
|
29
|
-
}), catchError((err) => {
|
|
30
|
-
console.error('Error loading config: ', err);
|
|
31
|
-
this.configObject = null;
|
|
32
|
-
this.configSubject.next(this.configObject);
|
|
33
|
-
return of(null);
|
|
34
|
-
}));
|
|
35
|
-
}
|
|
36
|
-
makeHttpCall(url) {
|
|
37
|
-
return this._http.get(url).pipe(take(1));
|
|
38
|
-
}
|
|
39
|
-
getConfig() {
|
|
40
|
-
return this.configObject;
|
|
41
|
-
}
|
|
42
|
-
getConfigObjectKey(key) {
|
|
43
|
-
return this.configObject ? this.configObject[key] : null;
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
RuntimeConfigLoaderService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.6", ngImport: i0, type: RuntimeConfigLoaderService, deps: [{ token: i1.HttpClient }, { token: i2.RuntimeConfig, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
47
|
-
RuntimeConfigLoaderService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.6", ngImport: i0, type: RuntimeConfigLoaderService });
|
|
48
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.6", ngImport: i0, type: RuntimeConfigLoaderService, decorators: [{
|
|
49
|
-
type: Injectable
|
|
50
|
-
}], ctorParameters: function () { return [{ type: i1.HttpClient }, { type: i2.RuntimeConfig, decorators: [{
|
|
51
|
-
type: Optional
|
|
52
|
-
}] }]; } });
|
|
53
|
-
//# sourceMappingURL=runtime-config-loader.service.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"runtime-config-loader.service.js","sourceRoot":"","sources":["../../../../../../libs/runtime-config-loader/src/lib/runtime-config-loader/runtime-config-loader.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,QAAQ,EAAc,EAAE,EAAE,OAAO,EAAO,MAAM,MAAM,CAAC;AAC9D,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAC;;;;AAGvD,MAAM,OAAO,0BAA0B;IAKtC,YAAoB,KAAiB,EAAc,MAAqB;QAApD,UAAK,GAAL,KAAK,CAAY;QAJ7B,cAAS,GAAsB,sBAAsB,CAAC;QACtD,iBAAY,GAAQ,IAAI,CAAC;QAC1B,kBAAa,GAAiB,IAAI,OAAO,EAAO,CAAC;QAGvD,IAAI,MAAM,EAAE;YACX,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC;SAClC;IACF,CAAC;IAED,UAAU;QACT,MAAM,IAAI,GAAa,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC;YACnD,CAAC,CAAC,IAAI,CAAC,SAAS;YAChB,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAEpB,MAAM,WAAW,GAAsB,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CACvD,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CACtB,CAAC;QAEF,OAAO,QAAQ,CAAC,WAAW,CAAC,CAAC,IAAI,CAChC,GAAG,CAAC,CAAC,eAAsB,EAAE,EAAE;YAC9B,IAAI,CAAC,YAAY,GAAG,eAAe,CAAC,MAAM,CACzC,CAAC,GAAG,EAAE,UAAU,EAAE,EAAE;gBACnB,uCAAY,GAAG,GAAK,UAAU,EAAG;YAClC,CAAC,EACD,EAAE,CACF,CAAC;YAEF,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAC5C,CAAC,CAAC,EACF,UAAU,CAAC,CAAC,GAAQ,EAAE,EAAE;YACvB,OAAO,CAAC,KAAK,CAAC,wBAAwB,EAAE,GAAG,CAAC,CAAC;YAC7C,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;YACzB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YAC3C,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC;QACjB,CAAC,CAAC,CACF,CAAC;IACH,CAAC;IAEO,YAAY,CAAC,GAAW;QAC/B,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IAC1C,CAAC;IAED,SAAS;QACR,OAAO,IAAI,CAAC,YAAY,CAAC;IAC1B,CAAC;IAED,kBAAkB,CAAC,GAAW;QAC7B,OAAO,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAC1D,CAAC;;uHAlDW,0BAA0B;2HAA1B,0BAA0B;2FAA1B,0BAA0B;kBADtC,UAAU;;0BAM8B,QAAQ","sourcesContent":["import { HttpClient } from '@angular/common/http';\nimport { Injectable, Optional } from '@angular/core';\nimport { RuntimeConfig } from '../runtime-config';\nimport { forkJoin, Observable, of, Subject, zip } from 'rxjs';\nimport { catchError, take, tap } from 'rxjs/operators';\n\n@Injectable()\nexport class RuntimeConfigLoaderService {\n\tprivate configUrl: string | string[] = './assets/config.json';\n\tprivate configObject: any = null;\n\tpublic configSubject: Subject<any> = new Subject<any>();\n\n\tconstructor(private _http: HttpClient, @Optional() config: RuntimeConfig) {\n\t\tif (config) {\n\t\t\tthis.configUrl = config.configUrl;\n\t\t}\n\t}\n\n\tloadConfig(): Observable<any> {\n\t\tconst urls: string[] = Array.isArray(this.configUrl)\n\t\t\t? this.configUrl\n\t\t\t: [this.configUrl];\n\n\t\tconst observables: Observable<any>[] = urls.map((url) =>\n\t\t\tthis.makeHttpCall(url)\n\t\t);\n\n\t\treturn forkJoin(observables).pipe(\n\t\t\ttap((configDataArray: any[]) => {\n\t\t\t\tthis.configObject = configDataArray.reduce(\n\t\t\t\t\t(acc, configData) => {\n\t\t\t\t\t\treturn { ...acc, ...configData };\n\t\t\t\t\t},\n\t\t\t\t\t{}\n\t\t\t\t);\n\n\t\t\t\tthis.configSubject.next(this.configObject);\n\t\t\t}),\n\t\t\tcatchError((err: any) => {\n\t\t\t\tconsole.error('Error loading config: ', err);\n\t\t\t\tthis.configObject = null;\n\t\t\t\tthis.configSubject.next(this.configObject);\n\t\t\t\treturn of(null);\n\t\t\t})\n\t\t);\n\t}\n\n\tprivate makeHttpCall(url: string): Observable<any> {\n\t\treturn this._http.get(url).pipe(take(1));\n\t}\n\n\tgetConfig() {\n\t\treturn this.configObject;\n\t}\n\n\tgetConfigObjectKey(key: string) {\n\t\treturn this.configObject ? this.configObject[key] : null;\n\t}\n}\n"]}
|
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
import { HttpClientModule } from '@angular/common/http';
|
|
2
|
-
import { APP_INITIALIZER, NgModule } from '@angular/core';
|
|
3
|
-
import { RuntimeConfig } from './runtime-config';
|
|
4
|
-
import { RuntimeConfigLoaderService } from './runtime-config-loader/runtime-config-loader.service';
|
|
5
|
-
import * as i0 from "@angular/core";
|
|
6
|
-
export function initConfig(configSvc) {
|
|
7
|
-
return () => configSvc.loadConfig();
|
|
8
|
-
}
|
|
9
|
-
export class RuntimeConfigLoaderModule {
|
|
10
|
-
static forRoot(config) {
|
|
11
|
-
return {
|
|
12
|
-
ngModule: RuntimeConfigLoaderModule,
|
|
13
|
-
providers: [
|
|
14
|
-
{
|
|
15
|
-
provide: RuntimeConfig,
|
|
16
|
-
useValue: config,
|
|
17
|
-
},
|
|
18
|
-
RuntimeConfigLoaderService,
|
|
19
|
-
],
|
|
20
|
-
};
|
|
21
|
-
}
|
|
22
|
-
}
|
|
23
|
-
RuntimeConfigLoaderModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.6", ngImport: i0, type: RuntimeConfigLoaderModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
24
|
-
RuntimeConfigLoaderModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.6", ngImport: i0, type: RuntimeConfigLoaderModule, imports: [HttpClientModule] });
|
|
25
|
-
RuntimeConfigLoaderModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.6", ngImport: i0, type: RuntimeConfigLoaderModule, providers: [
|
|
26
|
-
RuntimeConfigLoaderService,
|
|
27
|
-
{
|
|
28
|
-
provide: APP_INITIALIZER,
|
|
29
|
-
useFactory: initConfig,
|
|
30
|
-
deps: [RuntimeConfigLoaderService],
|
|
31
|
-
multi: true,
|
|
32
|
-
},
|
|
33
|
-
], imports: [[HttpClientModule]] });
|
|
34
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.6", ngImport: i0, type: RuntimeConfigLoaderModule, decorators: [{
|
|
35
|
-
type: NgModule,
|
|
36
|
-
args: [{
|
|
37
|
-
imports: [HttpClientModule],
|
|
38
|
-
providers: [
|
|
39
|
-
RuntimeConfigLoaderService,
|
|
40
|
-
{
|
|
41
|
-
provide: APP_INITIALIZER,
|
|
42
|
-
useFactory: initConfig,
|
|
43
|
-
deps: [RuntimeConfigLoaderService],
|
|
44
|
-
multi: true,
|
|
45
|
-
},
|
|
46
|
-
],
|
|
47
|
-
}]
|
|
48
|
-
}] });
|
|
49
|
-
//# sourceMappingURL=runtime-config-loader.module.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"runtime-config-loader.module.js","sourceRoot":"","sources":["../../../../../libs/runtime-config-loader/src/lib/runtime-config-loader.module.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAAE,eAAe,EAAuB,QAAQ,EAAE,MAAM,eAAe,CAAC;AAC/E,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,0BAA0B,EAAE,MAAM,uDAAuD,CAAC;;AAEnG,MAAM,UAAU,UAAU,CAAC,SAAqC;IAC/D,OAAO,GAAG,EAAE,CAAC,SAAS,CAAC,UAAU,EAAE,CAAC;AACrC,CAAC;AAcD,MAAM,OAAO,yBAAyB;IACrC,MAAM,CAAC,OAAO,CACb,MAAqB;QAErB,OAAO;YACN,QAAQ,EAAE,yBAAyB;YACnC,SAAS,EAAE;gBACV;oBACC,OAAO,EAAE,aAAa;oBACtB,QAAQ,EAAE,MAAM;iBAChB;gBACD,0BAA0B;aAC1B;SACD,CAAC;IACH,CAAC;;sHAdW,yBAAyB;uHAAzB,yBAAyB,YAX3B,gBAAgB;uHAWd,yBAAyB,aAV1B;QACV,0BAA0B;QAC1B;YACC,OAAO,EAAE,eAAe;YACxB,UAAU,EAAE,UAAU;YACtB,IAAI,EAAE,CAAC,0BAA0B,CAAC;YAClC,KAAK,EAAE,IAAI;SACX;KACD,YATQ,CAAC,gBAAgB,CAAC;2FAWf,yBAAyB;kBAZrC,QAAQ;mBAAC;oBACT,OAAO,EAAE,CAAC,gBAAgB,CAAC;oBAC3B,SAAS,EAAE;wBACV,0BAA0B;wBAC1B;4BACC,OAAO,EAAE,eAAe;4BACxB,UAAU,EAAE,UAAU;4BACtB,IAAI,EAAE,CAAC,0BAA0B,CAAC;4BAClC,KAAK,EAAE,IAAI;yBACX;qBACD;iBACD","sourcesContent":["import { HttpClientModule } from '@angular/common/http';\nimport { APP_INITIALIZER, ModuleWithProviders, NgModule } from '@angular/core';\nimport { RuntimeConfig } from './runtime-config';\nimport { RuntimeConfigLoaderService } from './runtime-config-loader/runtime-config-loader.service';\n\nexport function initConfig(configSvc: RuntimeConfigLoaderService) {\n\treturn () => configSvc.loadConfig();\n}\n\n@NgModule({\n\timports: [HttpClientModule],\n\tproviders: [\n\t\tRuntimeConfigLoaderService,\n\t\t{\n\t\t\tprovide: APP_INITIALIZER,\n\t\t\tuseFactory: initConfig,\n\t\t\tdeps: [RuntimeConfigLoaderService],\n\t\t\tmulti: true,\n\t\t},\n\t],\n})\nexport class RuntimeConfigLoaderModule {\n\tstatic forRoot(\n\t\tconfig: RuntimeConfig\n\t): ModuleWithProviders<RuntimeConfigLoaderModule> {\n\t\treturn {\n\t\t\tngModule: RuntimeConfigLoaderModule,\n\t\t\tproviders: [\n\t\t\t\t{\n\t\t\t\t\tprovide: RuntimeConfig,\n\t\t\t\t\tuseValue: config,\n\t\t\t\t},\n\t\t\t\tRuntimeConfigLoaderService,\n\t\t\t],\n\t\t};\n\t}\n}\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"runtime-config.js","sourceRoot":"","sources":["../../../../../libs/runtime-config-loader/src/lib/runtime-config.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,aAAa;IAGzB,YAAY,MAAW,EAAE;QACxB,IAAI,CAAC,SAAS,GAAG,GAAG,CAAC,SAAS,IAAI,sBAAsB,CAAC;IAC1D,CAAC;CACD","sourcesContent":["export class RuntimeConfig {\n\tconfigUrl: string | string[];\n\n\tconstructor(obj: any = {}) {\n\t\tthis.configUrl = obj.configUrl || './assets/config.json';\n\t}\n}\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"runtime-config-loader.js","sourceRoot":"","sources":["../../../../libs/runtime-config-loader/src/runtime-config-loader.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,SAAS,CAAC","sourcesContent":["/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"runtime-config-loader.js","sources":["../../../../libs/runtime-config-loader/src/lib/runtime-config.ts","../../../../libs/runtime-config-loader/src/lib/runtime-config-loader/runtime-config-loader.service.ts","../../../../libs/runtime-config-loader/src/lib/runtime-config-loader.module.ts","../../../../libs/runtime-config-loader/src/runtime-config-loader.ts"],"sourcesContent":["export class RuntimeConfig {\n\tconfigUrl: string | string[];\n\n\tconstructor(obj: any = {}) {\n\t\tthis.configUrl = obj.configUrl || './assets/config.json';\n\t}\n}\n","import { HttpClient } from '@angular/common/http';\nimport { Injectable, Optional } from '@angular/core';\nimport { RuntimeConfig } from '../runtime-config';\nimport { forkJoin, Observable, of, Subject, zip } from 'rxjs';\nimport { catchError, take, tap } from 'rxjs/operators';\n\n@Injectable()\nexport class RuntimeConfigLoaderService {\n\tprivate configUrl: string | string[] = './assets/config.json';\n\tprivate configObject: any = null;\n\tpublic configSubject: Subject<any> = new Subject<any>();\n\n\tconstructor(private _http: HttpClient, @Optional() config: RuntimeConfig) {\n\t\tif (config) {\n\t\t\tthis.configUrl = config.configUrl;\n\t\t}\n\t}\n\n\tloadConfig(): Observable<any> {\n\t\tconst urls: string[] = Array.isArray(this.configUrl)\n\t\t\t? this.configUrl\n\t\t\t: [this.configUrl];\n\n\t\tconst observables: Observable<any>[] = urls.map((url) =>\n\t\t\tthis.makeHttpCall(url)\n\t\t);\n\n\t\treturn forkJoin(observables).pipe(\n\t\t\ttap((configDataArray: any[]) => {\n\t\t\t\tthis.configObject = configDataArray.reduce(\n\t\t\t\t\t(acc, configData) => {\n\t\t\t\t\t\treturn { ...acc, ...configData };\n\t\t\t\t\t},\n\t\t\t\t\t{}\n\t\t\t\t);\n\n\t\t\t\tthis.configSubject.next(this.configObject);\n\t\t\t}),\n\t\t\tcatchError((err: any) => {\n\t\t\t\tconsole.error('Error loading config: ', err);\n\t\t\t\tthis.configObject = null;\n\t\t\t\tthis.configSubject.next(this.configObject);\n\t\t\t\treturn of(null);\n\t\t\t})\n\t\t);\n\t}\n\n\tprivate makeHttpCall(url: string): Observable<any> {\n\t\treturn this._http.get(url).pipe(take(1));\n\t}\n\n\tgetConfig() {\n\t\treturn this.configObject;\n\t}\n\n\tgetConfigObjectKey(key: string) {\n\t\treturn this.configObject ? this.configObject[key] : null;\n\t}\n}\n","import { HttpClientModule } from '@angular/common/http';\nimport { APP_INITIALIZER, ModuleWithProviders, NgModule } from '@angular/core';\nimport { RuntimeConfig } from './runtime-config';\nimport { RuntimeConfigLoaderService } from './runtime-config-loader/runtime-config-loader.service';\n\nexport function initConfig(configSvc: RuntimeConfigLoaderService) {\n\treturn () => configSvc.loadConfig();\n}\n\n@NgModule({\n\timports: [HttpClientModule],\n\tproviders: [\n\t\tRuntimeConfigLoaderService,\n\t\t{\n\t\t\tprovide: APP_INITIALIZER,\n\t\t\tuseFactory: initConfig,\n\t\t\tdeps: [RuntimeConfigLoaderService],\n\t\t\tmulti: true,\n\t\t},\n\t],\n})\nexport class RuntimeConfigLoaderModule {\n\tstatic forRoot(\n\t\tconfig: RuntimeConfig\n\t): ModuleWithProviders<RuntimeConfigLoaderModule> {\n\t\treturn {\n\t\t\tngModule: RuntimeConfigLoaderModule,\n\t\t\tproviders: [\n\t\t\t\t{\n\t\t\t\t\tprovide: RuntimeConfig,\n\t\t\t\t\tuseValue: config,\n\t\t\t\t},\n\t\t\t\tRuntimeConfigLoaderService,\n\t\t\t],\n\t\t};\n\t}\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|