@livingdocs/conf

    2.0.1 • Public • Published

    @livingdocs/conf

    Greenkeeper badge

    Package to load, merge and access environment-specific configuration files.

    How to use

    Example how to load the configuration for an environment defined in an environment variable:

    const path = require('path')
    const Conf = require('@livingdocs/conf')
     
    const appConf = Conf.loadEnvironment(path.resolve('./conf'), process.env.ENVIRONMENT)

    Required folder structure

    This modules assumes a specific folder structure. Following is an example:

    yourConfigFolder/
      environments/
        all.js
        local.js
        staging.js
        production.js
      secrets/
        local.js
    

    To load a e.g the 'local' environment use loadEnvironment(path.resolve('./yourConfigFolder'), 'local').

    This will go through the following steps:

    1. load environments/all.js
    2. merge environments/local.js
    3. merge secrets/local.js
    4. merge environment variables

    The environment names local, staging, production are not defined. You can use whatever you want there.

    Environment variables

    Example all.js:

    db: {
      database: 'foo'
    }

    You can override the database property as follows:

    exports db__database=bar

    Double underscores (__) denote a child property.

    API

    The loadEnvironment method is the main entry point to init a configuration.

    const appConf = Conf.loadEnvironment(file, environment)

    Get a config value. Note: this will throw an error if the config is not present.

    appConf.get('db:database')

    To safely query for a config value provide a default value as the second param.

    appConf.get('db:database', null)

    You can also set config values programmatically:

    appConf.set('db:database', 'bar')

    You can manually merge whole objects to set configs in bulk:

    appConf.merge(obj)

    Outputs the whole configuration as json string:

    appConf.toString(obj)

    Copyright

    Copyright (c) 2015 Livingdocs AG, all rights reserved

    It is not permitted to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of this Software, except when explicitly stated otherwise by Livingdocs AG.

    Install

    npm i @livingdocs/conf

    DownloadsWeekly Downloads

    694

    Version

    2.0.1

    License

    ISC

    Unpacked Size

    5.43 kB

    Total Files

    3

    Last publish

    Collaborators

    • avatar
    • avatar