Socket
Socket
Sign inDemoInstall

@hapiness/config

Package Overview
Dependencies
10
Maintainers
1
Versions
11
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

    @hapiness/config

Configuration Library to use it inside Hapiness framework


Version published
Weekly downloads
12
increased by300%
Maintainers
1
Created
Weekly downloads
 

Readme

Source
Hapiness
build coveralls dependencies devDependencies

Hapiness Config

Configuration module based on node-config & js-yaml libraries.

Table of contents

Using config module

yarn or npm it in your package.json

$ npm install --save @h@hapiness/config

or

$ yarn add @hapiness/config
"dependencies": {
    "@hapiness/config": "^1.2.1",
    //...
}
//...

Standalone

./config/default.yml:

my:
    config: test

Node.js Script:

import { Config } from '@hapiness/config';

if (Config.has('my.config')) {
    console.log(Config.get('my.config')); // output: 'test'
}

Hapiness

./config/default.yml:

external_service:
    baseUrl: 'test'

mymodule_database:
    provider: postgresql
    hostname: localhost
    user: pguser
    password: keyboard cat

Hapiness module:

// external-module.ts
  import {
    HapinessModule,
    CoreModuleWithProviders,
    InjectionToken,
    Inject,
    Optional,
  } from '@hapiness/core';

  import { ConfigHelper, ConfigInterface } from '@hapiness/config';

    @HapinessModule({
        ...
    })

    export class ExternalModule {
        static setConfig(config: ConfigInterface): CoreModuleWithProviders {
            return {
                module: ExternalModule,
                providers: [ConfigHelpers.getProvider('mymodule_database', config)]
            };
        }
    }

    export class Service {
      constructor(@Optional() @Inject(ConfigHelper.getInjectionToken('mymodule_database')) config) { // @Optional to not throw errors if config is not passed
        ...
      }
    }

    // main-module.ts
    import {
      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.ts
    import {
      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()
    class MyCustomService {

        private _baseUrl: string;

        constrcutor(
            @Inject(ConfigHelper.getInjectionToken('external_service'))
            private _config: ConfigInterface
        ) {}

        connect() {
            this._baseUrl = this._config.get<string>('baseUrl');
        }

    }
    ...

Back to top

Change History

  • v1.2.1 (2018-09-26)
    • Fix a bug when default value of get() was a falsy value and wrongly interpreted as undefined
  • 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 Config module.
    • Tests module.
    • Documentation.
    • First stable version.

Back to top

Maintainers

tadaweb
Julien FauvilleAntoine GomezSébastien RitzNicolas Jessel

Back to top

License

Copyright (c) 2018 Hapiness Licensed under the MIT license.

Back to top

Keywords

FAQs

Last updated on 28 Sep 2018

Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc