1.0.4 • Published 5 years ago
dotenv-plus-options v1.0.4
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.