@ngx-config/merge-loader
v9.0.0
Published
Loader for ngx-config that provides application settings by executing loaders in parallel and in series
Downloads
241
Maintainers
Readme
@ngx-config/merge-loader
Loader for ngx-config that provides application settings by executing loaders in parallel and in series
Please support this project by simply putting a Github star. Share this library with friends on Twitter and everywhere else you can.
Table of contents:
Getting started
Installation
You can install @ngx-config/merge-loader
using npm
npm install @ngx-config/merge-loader --save
Note: You should have already installed @ngx-config/core.
Examples
- ng-seed/universal and fulls1z3/example-app are officially maintained projects, showcasing common patterns and best
practices for
@ngx-config/merge-loader
.
Related packages
The following packages may be used in conjunction with @ngx-config/merge-loader
:
Adding @ngx-config/merge-loader
to your project (SystemJS)
Add map
for @ngx-config/merge-loader
in your systemjs.config
'@ngx-config/merge-loader': 'node_modules/@ngx-config/merge-loader/bundles/merge-loader.umd.min.js'
Settings
Setting up ConfigModule
to use ConfigMergeLoader
ConfigMergeLoader
requires one or more loaders of type ConfigLoader
to load application settings by executing specified
loaders in parallel and in series.
- Import
ConfigModule
using the mapping'@ngx-config/core'
and appendConfigModule.forRoot({...})
within the imports property of app.module. - Import
ConfigMergeLoader
using the mapping'@ngx-config/merge-loader'
.
Note: Considering the app.module is the core module in Angular application.
app.module.ts
...
import { HttpClient } from '@angular/common/http';
import { ConfigModule, ConfigLoader } from '@ngx-config/core';
import { ConfigHttpLoader } from '@ngx-config/http-loader';
import { ConfigMergeLoader } from '@ngx-config/merge-loader';
...
export function configFactory(http: HttpClient): ConfigLoader {
const remoteConfigLoader = new ConfigHttpLoader(http, 'http://mysite.com/api/settings'); // API ENDPOINT (remote)
const localConfigLoader = new ConfigHttpLoader(http, './config.local.json'); // API ENDPOINT (local)
return new ConfigMergeLoader([remoteConfigLoader, localConfigLoader]); // PARALLEL EXECUTION
}
export function configFactorySeries(http: HttpClient): ConfigLoader {
const localConfigLoader = new ConfigHttpLoader(http, './config.local.json'); // API ENDPOINT (local)
return new ConfigMergeLoader([localConfigLoader])
.next((res: any) => new ConfigHttpLoader(http, res['apiEndpoint'] + 'api/settings')); // SERIES EXECUTION
}
@NgModule({
declarations: [
AppComponent,
...
],
...
imports: [
ConfigModule.forRoot({
provide: ConfigLoader,
useFactory: (configFactory),
deps: [Http]
}),
...
],
...
bootstrap: [AppComponent]
})
ConfigMergeLoader
has one parameter:
- loaders:
Array<ConfigLoader>
: theloaders
to be executed (by default,[new ConfigStaticLoader()]
)
ConfigMergeLoader
has also the next
public method, which you can pass the loader to be executed in series.
:+1: Well!
@ngx-config/merge-loader
will now provide application settings to @ngx-config/core by executing loaders in parallel and in series.
License
The MIT License (MIT)
Copyright (c) 2019 Burak Tasci