Skip to content

Config module to read .env config files and constructor options mixing in config.options

License

Notifications You must be signed in to change notification settings

AdSegura/dotenv-plus-options

Repository files navigation

Build Status

dotenv-plus-options

This module loads environment variables from a .env file, if there is one .env file at CWD, (with dotenv package) and any options given to the constructor, mixing it all into config.options

Constructor options always takes preference over options from .env file.

Install

$> npm i dotenv-plus-options

Prerequisites

  • NodeJs >=v6.17.1 (npm v3.10.10)

Usage

Instantiate Config module

const {Config} = require('dotenv-plus-options');
let config;

config = new Config();
config = new Config(options);
config = new Config(options, dotenv_options);
config = new Config(null, dotenv_options);

console.log(config.options);

Example Extends Config Class

/**
 .env file on CWD:
 DB_USER=John
 ALLOWED=["foo", "bar"]
 OBJ={"id": 1, "op": ["one","two"]}
 */

const {Config} = require('dotenv-plus-options');

class App extends Config {
    constructor(opt){
        super(opt)
    }
}

const app = new App({db_user: 'root', baz: 2});

console.log(app.options);

/**
 {
  db_user: 'root', //constructor options always takes preference
  allowed: [ 'foo', 'bar' ],
  obj: { id: 1, op: [ 'one', 'two' ] },
  baz: 2
  }
 */

dotenv options

Errors

Only one error is thrown, named AdsegConfigError when you force dotenv custom .env path and dotenv cannot parse it.

const {Config} = require('dotenv-plus-options');

config = new Config(options, {path: 'nonExistingEnvFile'});

//or

config = new Config(null, {path: 'nonExistingEnvFile'});

//throws AdsegConfigError

Tests

> npm run test

Dependencies

Contributing

Pull requests are welcome.

License

MIT

About

Config module to read .env config files and constructor options mixing in config.options

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published