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
Example without any config
// entor.prod.json
{
"db_url": "prod://url",
"username": "prod"
}
// index.js
require("entor")();
node ./index.js --env=prod
entor.prod.json
into process.env.
// process.env
{
"db_url": "prod://url",
"user": "prod"
}
process.env
is converted to string
by Node.
Config
const env = require("entor")({config});
// ↑ entor will always return env object
-
getEnv
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.json
will 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
. Iftrue
adds theentor.<env>.json
content to theprocess.env
object.
-
syncExamples
boolean
: Defaultfalse
. Iftrue
syncs theentor.<env>.json
file with theentorExample.<env>.json
file.
Override priority
-
override
will override ↓ -
env
will override ↓ -
sharedEnvPath
(This is the first file that will be loaded)
Examples
Custom arguments
// index.js
require("entor")({
getEnv: args => args.myCustomEnv,
});
node ./index.js --myCustomEnv=local
Override
// entor.prod.json
{
"db_url": "prod://url",
"username": "prod"
}
// index.js
require("entor")({
override: {
db_url: "override://url"
}
});
node ./index.js --env=prod
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/",
});
node ./index.js --env=prod
entor.prod.json
(shared) with prod.entor.json
(project) and write into process.env.
// process.env values:
{
db_url: "shared://url",
username: "prod"
}