runtime-config-loader
Version:
Most applications require certain configuration values that can be changed at runtime of the app. The `environment.ts` files in an Angular application technically work for setting configuration values in an app, but those are buildtime configuration value
49 lines • 5.05 kB
JavaScript
import { HttpClientModule } from '@angular/common/http';
import { APP_INITIALIZER, NgModule } from '@angular/core';
import { RuntimeConfig } from './runtime-config';
import { RuntimeConfigLoaderService } from './runtime-config-loader/runtime-config-loader.service';
import * as i0 from "@angular/core";
export function initConfig(configSvc) {
return () => configSvc.loadConfig();
}
export class RuntimeConfigLoaderModule {
static forRoot(config) {
return {
ngModule: RuntimeConfigLoaderModule,
providers: [
{
provide: RuntimeConfig,
useValue: config,
},
RuntimeConfigLoaderService,
],
};
}
}
RuntimeConfigLoaderModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: RuntimeConfigLoaderModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
RuntimeConfigLoaderModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.2.0", ngImport: i0, type: RuntimeConfigLoaderModule, imports: [HttpClientModule] });
RuntimeConfigLoaderModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: RuntimeConfigLoaderModule, providers: [
RuntimeConfigLoaderService,
{
provide: APP_INITIALIZER,
useFactory: initConfig,
deps: [RuntimeConfigLoaderService],
multi: true,
},
], imports: [HttpClientModule] });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: RuntimeConfigLoaderModule, decorators: [{
type: NgModule,
args: [{
imports: [HttpClientModule],
providers: [
RuntimeConfigLoaderService,
{
provide: APP_INITIALIZER,
useFactory: initConfig,
deps: [RuntimeConfigLoaderService],
multi: true,
},
],
}]
}] });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVudGltZS1jb25maWctbG9hZGVyLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvcnVudGltZS1jb25maWctbG9hZGVyL3NyYy9saWIvcnVudGltZS1jb25maWctbG9hZGVyLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN4RCxPQUFPLEVBQUUsZUFBZSxFQUF1QixRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL0UsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2pELE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLHVEQUF1RCxDQUFDOztBQUVuRyxNQUFNLFVBQVUsVUFBVSxDQUFDLFNBQXFDO0lBQy9ELE9BQU8sR0FBRyxFQUFFLENBQUMsU0FBUyxDQUFDLFVBQVUsRUFBRSxDQUFDO0FBQ3JDLENBQUM7QUFjRCxNQUFNLE9BQU8seUJBQXlCO0lBQ3JDLE1BQU0sQ0FBQyxPQUFPLENBQ2IsTUFBcUI7UUFFckIsT0FBTztZQUNOLFFBQVEsRUFBRSx5QkFBeUI7WUFDbkMsU0FBUyxFQUFFO2dCQUNWO29CQUNDLE9BQU8sRUFBRSxhQUFhO29CQUN0QixRQUFRLEVBQUUsTUFBTTtpQkFDaEI7Z0JBQ0QsMEJBQTBCO2FBQzFCO1NBQ0QsQ0FBQztJQUNILENBQUM7O3NIQWRXLHlCQUF5Qjt1SEFBekIseUJBQXlCLFlBWDNCLGdCQUFnQjt1SEFXZCx5QkFBeUIsYUFWMUI7UUFDViwwQkFBMEI7UUFDMUI7WUFDQyxPQUFPLEVBQUUsZUFBZTtZQUN4QixVQUFVLEVBQUUsVUFBVTtZQUN0QixJQUFJLEVBQUUsQ0FBQywwQkFBMEIsQ0FBQztZQUNsQyxLQUFLLEVBQUUsSUFBSTtTQUNYO0tBQ0QsWUFUUyxnQkFBZ0I7MkZBV2QseUJBQXlCO2tCQVpyQyxRQUFRO21CQUFDO29CQUNULE9BQU8sRUFBRSxDQUFDLGdCQUFnQixDQUFDO29CQUMzQixTQUFTLEVBQUU7d0JBQ1YsMEJBQTBCO3dCQUMxQjs0QkFDQyxPQUFPLEVBQUUsZUFBZTs0QkFDeEIsVUFBVSxFQUFFLFVBQVU7NEJBQ3RCLElBQUksRUFBRSxDQUFDLDBCQUEwQixDQUFDOzRCQUNsQyxLQUFLLEVBQUUsSUFBSTt5QkFDWDtxQkFDRDtpQkFDRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBDbGllbnRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBBUFBfSU5JVElBTElaRVIsIE1vZHVsZVdpdGhQcm92aWRlcnMsIE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBSdW50aW1lQ29uZmlnIH0gZnJvbSAnLi9ydW50aW1lLWNvbmZpZyc7XG5pbXBvcnQgeyBSdW50aW1lQ29uZmlnTG9hZGVyU2VydmljZSB9IGZyb20gJy4vcnVudGltZS1jb25maWctbG9hZGVyL3J1bnRpbWUtY29uZmlnLWxvYWRlci5zZXJ2aWNlJztcblxuZXhwb3J0IGZ1bmN0aW9uIGluaXRDb25maWcoY29uZmlnU3ZjOiBSdW50aW1lQ29uZmlnTG9hZGVyU2VydmljZSkge1xuXHRyZXR1cm4gKCkgPT4gY29uZmlnU3ZjLmxvYWRDb25maWcoKTtcbn1cblxuQE5nTW9kdWxlKHtcblx0aW1wb3J0czogW0h0dHBDbGllbnRNb2R1bGVdLFxuXHRwcm92aWRlcnM6IFtcblx0XHRSdW50aW1lQ29uZmlnTG9hZGVyU2VydmljZSxcblx0XHR7XG5cdFx0XHRwcm92aWRlOiBBUFBfSU5JVElBTElaRVIsXG5cdFx0XHR1c2VGYWN0b3J5OiBpbml0Q29uZmlnLFxuXHRcdFx0ZGVwczogW1J1bnRpbWVDb25maWdMb2FkZXJTZXJ2aWNlXSxcblx0XHRcdG11bHRpOiB0cnVlLFxuXHRcdH0sXG5cdF0sXG59KVxuZXhwb3J0IGNsYXNzIFJ1bnRpbWVDb25maWdMb2FkZXJNb2R1bGUge1xuXHRzdGF0aWMgZm9yUm9vdChcblx0XHRjb25maWc6IFJ1bnRpbWVDb25maWdcblx0KTogTW9kdWxlV2l0aFByb3ZpZGVyczxSdW50aW1lQ29uZmlnTG9hZGVyTW9kdWxlPiB7XG5cdFx0cmV0dXJuIHtcblx0XHRcdG5nTW9kdWxlOiBSdW50aW1lQ29uZmlnTG9hZGVyTW9kdWxlLFxuXHRcdFx0cHJvdmlkZXJzOiBbXG5cdFx0XHRcdHtcblx0XHRcdFx0XHRwcm92aWRlOiBSdW50aW1lQ29uZmlnLFxuXHRcdFx0XHRcdHVzZVZhbHVlOiBjb25maWcsXG5cdFx0XHRcdH0sXG5cdFx0XHRcdFJ1bnRpbWVDb25maWdMb2FkZXJTZXJ2aWNlLFxuXHRcdFx0XSxcblx0XHR9O1xuXHR9XG59XG4iXX0=