Sanitization and verification of environment variables with typescript support.
npm install env-sanitize
yarn add env-sanitize
import env from "env-sanitize";
// or const env = require('env-sanitize');
// If not exists, throw.
const env_region = env("AWS_REGION");
// use default if not exists.
const env_server_url = env("SERVER_URL", "localhost");
// get MAX_CONNECTIONS env, and transform it to int.
// throw if its not a number or not exists.
const env_max_connections = env("MAX_CONNECTIONS", (x) => x.asInt());
// get PORT env, and transform it to number in port range.
// throw if its out of the range.
// return default if not exists.
const env_port = env("PORT", (x) => x.asPort(), 4000);
// We can chain the Sanitizers.
const env_key = env("STRING_KEY", (x) =>
x
.asLowerCase()
.asEnum(["one", "two"])
.transform((v) => (v === "one" ? 1 : 2))
);
- required
- with default
- asInt
- asIntInclusiveBetween
- asFloat
- asFloatInclusiveBetween
- asBoolean
- asEnum
- asPort
- asJson
- asJsonArray
- asLowerCase
- asUpperCase
- assert
- transform
const env_required = env("REQUIRED_KEY");
const env_key = env("OPTIONAL_KEY", "default");
const env_key = env("INT_KEY", (x) => x.asInt());
const env_key = env("INT_KEY", (x) => x.asIntInclusiveBetween(1, 5));
const env_key = env("FLOAT_KEY", (x) => x.asFloat());
const env_key = env("FLOAT_KEY", (x) => x.asFloatInclusiveBetween(1.4, 9.8));
const env_key = env("BOOLEAN_KEY", (x) => x.asBoolean());
const env_key = env("ENUM_KEY", (x) => x.asEnum(["option1", "option2"]));
const env_key = env("INT_KEY", (x) => x.asPort());
const env_key = env("JSON_KEY", (x) => x.asJson());
const env_key = env("JSON_ARRAY_KEY", (x) => x.asJsonArray());
const env_key = env("STRING_KEY", (x) => x.asLowerCase());
const env_key = env("STRING_KEY", (x) => x.asUpperCase());
const env_key = env("STRING_KEY", (x) =>
x.assert(
(v) => v === "foo",
(v) => `${v} is not foo.` // The message to throw.
)
);
const env_key = env("STRING_KEY", (x) => x.transform((v) => v.toString().toLowerCase()););