entor v1.3.0
entor loads environment variables from a JSON file into process.env.
- š Easy JSON configuration
- āŖļø Zero dependencies
- šŖ Flexibility
- š Shared environment between all your projects
- šØ Generates examples automatically
Table of contents
- Table of contents
- Example without any config
- Config
- Override priority
- Examples - Custom arguments - Override - Shared env
- Go to top
Example without any config
// entor.prod.json
{
"db_url": "prod://url",
"username": "prod"
}// index.js
require("entor")();šāāļø Run
node ./index.js --env=prodā
Entor will load entor.prod.json into process.env.
// process.env
{
"db_url": "prod://url",
"user": "prod"
}ā Note
Each value in process.env is converted to string by Node.
Config
const env = require("entor")({config});
// ā entor will always return env objectgetEnv
function:- Function that receives as argument the object with process arguments (
--key=valueā{key: value}) that must return a string containing theenv. - Default:
args => args.env.
- Function that receives as argument the object with process arguments (
env
string: Defines the environment type. This will take precedence overgetEnv.path
string: Defines the path where will look for the fileentor.<env>.json. Default./.sharedEnvPath
string: Defines the file path where a.jsonwill be loaded.override
object: object that will be merged with the content ofentor.<env>.json.warningLevel
"none" | "message" | "throw": -"none"will ignore all non-critical errors. -"message"will print all errors but will never throws. -"throw"will print all errors, throws on critical errors.addToProcessEnv
boolean: Defaulttrue. Iftrueadds theentor.<env>.jsoncontent to theprocess.envobject.syncExamples
boolean: Defaultfalse. Iftruesyncs theentor.<env>.jsonfile with theentorExample.<env>.jsonfile.
Override priority
overridewill override āenvwill override āsharedEnvPath(This is the first file that will be loaded)
Examples
Custom arguments
// index.js
require("entor")({
getEnv: args => args.myCustomEnv,
});šāāļø Run
node ./index.js --myCustomEnv=localOverride
// entor.prod.json
{
"db_url": "prod://url",
"username": "prod"
}// index.js
require("entor")({
override: {
db_url: "override://url"
}
});šāāļø Run
node ./index.js --env=prodā
Entor will load entor.prod.json into process.env and apply the override.
// process.env values:
{
db_url: "override://url",
username: "prod"
}Shared env
// entor.prod.json (located at the parent folder)
{
"db_url": "shared://url",
}// entor.prod.json (located at project folder)
{
"username": "prod"
}// index.js
require("entor")({
sharedEnvPath: "C:/parentFolder/",
});šāāļø Run
node ./index.js --env=prodā
Entor will merge entor.prod.json (shared) with prod.entor.json (project) and write into process.env.
// process.env values:
{
db_url: "shared://url",
username: "prod"
}