Configuration module based on node-config & js-yaml libraries.
$ npm install --save @h@hapiness/config
or
$ yarn add @hapiness/config"dependencies": {"@hapiness/config": "^1.2.1",//...}//..../config/default.yml:
my:
config: testNode.js Script:
import{Config}from'@hapiness/config';if(Config.has('my.config')){console.log(Config.get('my.config'));// output: 'test'}./config/default.yml:
external_service:
baseUrl: 'test'mymodule_database:
provider: postgresqlhostname: localhostuser: pguserpassword: keyboard catHapiness module:
// external-module.tsimport{HapinessModule,CoreModuleWithProviders,InjectionToken,Inject,Optional,}from'@hapiness/core';import{ConfigHelper,ConfigInterface}from'@hapiness/config';
@HapinessModule({
...
})exportclassExternalModule{staticsetConfig(config: ConfigInterface): CoreModuleWithProviders{return{module: ExternalModule,providers: [ConfigHelpers.getProvider('mymodule_database',config)]};}}exportclassService{constructor(@Optional() @Inject(ConfigHelper.getInjectionToken('mymodule_database'))config){// @Optional to not throw errors if config is not passed
...
}}// main-module.tsimport{HapinessModule,}from'@hapiness/core';import{ExternalModule}from'external-module';import{Config}from'@hapiness/config';
@HapinessModule({
...
imports: [ExternalModule.setConfig(Config.get('mymodule_database'))]})
...Hapiness service:
// main-module.tsimport{HapinessModule,}from'@hapiness/core';import{ConfigHelper,Config}from'@hapiness/config';import{MyCustomService}from'./services';
@HapinessModule({
...
providers: [ConfigHelper.getProvider('external_service'),MyCustomService,
...
]})
...import{Injectable}from'@hapiness/core';import{ConfigInterface}from'@hapiness/config';// my-custom-service.ts
@Injectable()classMyCustomService{private_baseUrl: string;constrcutor(
@Inject(ConfigHelper.getInjectionToken('external_service'))private_config: ConfigInterface){}connect(){this._baseUrl=this._config.get<string>('baseUrl');}}...- v1.2.1 (2018-09-26)
- Fix a bug when default value of
get()was a falsy value and wrongly interpreted as undefined
- Fix a bug when default value of
- v1.2.0 (2018-05-09)
* Delete obsolete
peerDependencies- Latest packages' versions
- Documentation
- v1.1.1 (2017-12-28)
* Fix load
config - v1.1.0 (2017-11-20)
- Latest packages' versions.
- Documentation.
- Change packaging process.
- v1.0.0 (2017-10-27)
- Create
Configmodule. - Tests module.
- Documentation.
- First stable version.
- Create
| Julien Fauville | Antoine Gomez | Sébastien Ritz | Nicolas Jessel |
Copyright (c) 2018 Hapiness Licensed under the MIT license.

