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
// 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.
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
will override โenv
will override โsharedEnvPath
(This is the first file that will be loaded)
// index.js
require("entor")({
getEnv: args => args.myCustomEnv,
});
๐โโ๏ธ Run
node ./index.js --myCustomEnv=local
// 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"
}
// 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"
}