dotenv-plus-options
Config module to read .env config files and constructor options mixing in config.options
Usage no npm install needed!
<script type="module">
import dotenvPlusOptions from 'https://cdn.skypack.dev/dotenv-plus-options';
</script>
Config module to read .env config files and constructor options mixing in config.options
<script type="module">
import dotenvPlusOptions from 'https://cdn.skypack.dev/dotenv-plus-options';
</script>
gt; npm i dotenv-plus-options
>=v6.17.1 (npm v3.10.10)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);
/**
.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
}
*/
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
> npm run test
Pull requests are welcome.