1.4.1 • Published 4 months ago

env-to-config v1.4.1

Weekly downloads
51
License
MIT
Repository
github
Last release
4 months ago

env-to-config

License: MIT Build Status codecov install size

"env-to-config" is a function that read the .env file and returns a frozen object (Object.freeze). The main purpose is to provide a ready to use config object, with all needed env keys, without directly check for the existence of those keys in the process.env object.
Inspired by Laravel config directory (yes, the Php framework).
It uses dotenv.

Install

# with npm
npm install env-to-config

# or with yarn
yarn add env-to-config

Usage

// config.js file
var envToConfig = require("env-to-config");
var config = envToConfig({
    mandatory_keys: [
        "REDIS_HOST",
        "REDIS_PORT"
    ],
    default_values: [{
        key: "APP_ENV",
        value: "production"
    }]
});

module.exports = config;
// index.js file
var config = require("config.js");

// just use the config keys
// no need to check if a key exists: if it's not there, an exception is thrown 
console.log(config.APP_ENV); // production

Options

Accepts an options object as a parameter with 3 possible keys:

path type string

Default: path.resolve(process.cwd(), '.env')
You may specify a custom path if your file containing environment variables is located elsewhere.

var envToConfig = require("env-to-config");
var config = envToConfig({
    path: "/absolute/path/to/env/file"
});
module.exports = config;

mandatory_keys type array

Default: []
A list of mandatory keys. It throws an error in case of a missing mandatory key (case sensitive check).

var envToConfig = require("env-to-config");
var config = envToConfig({
    mandatory_keys: [
        "DB_HOST",
        "DB_USERNAME",
        "DB_PASSWORD",
        "DB_DATABASE"
    ]
});
module.exports = config;

default_values type array

Default: []
A list of objects with the 2 keys key and value.

var envToConfig = require("env-to-config");
var config = envToConfig({
    default_values: [{
        key: "APP_ENV",
        value: "production"
    }]
});
module.exports = config;

Notes

  • empty keys are removed KEY_EMPTY=
  • numeric values are casted to integer KEY_NUMERIC=2

License

MIT

1.4.1

4 months ago

1.4.0

8 months ago

1.3.2

4 years ago

1.3.1

4 years ago

1.2.7

4 years ago

1.2.6

5 years ago

1.2.5

5 years ago

1.2.4

5 years ago

1.2.3

5 years ago

1.2.2

5 years ago

1.2.1

5 years ago

1.2.0

5 years ago

1.1.2

5 years ago

1.1.1-0

5 years ago

1.1.1

5 years ago

1.0.0

5 years ago