env-sanitize
v2.0.0
Published
Sanitization and verification of environment variables with typescript support.
Downloads
120
Readme
env-sanitize 🧹
Sanitization and verification of environment variables with typescript support.
Installation
npm
npm install env-sanitize
yarn
yarn add env-sanitize
Example
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))
);
Sanitizers
- required
- with default
- asInt
- asFloat
- greater
- greaterOrEqual
- less
- lessOrEqual
- asBoolean
- asEnum
- asRegex
- asPort
- asJson
- asJsonArray
- asLowerCase
- asUpperCase
- assert
- transform
required
const env_required = env("REQUIRED_KEY");
with default
const env_key = env("OPTIONAL_KEY", "default");
asInt
const env_key = env("INT_KEY", (x) => x.asInt());
asFloat
const env_key = env("FLOAT_KEY", (x) => x.asFloat());
greater
const env_float_key = env("FLOAT_KEY", (x) => x.greater(1));
const env_int_key = env("INT_KEY", (x) => x.asInt().greater(1));
greaterOrEqual
const env_float_key = env("FLOAT_KEY", (x) => x.greaterOrEqual(1));
const env_int_key = env("INT_KEY", (x) => x.asInt().greaterOrEqual(1));
less
const env_float_key = env("FLOAT_KEY", (x) => x.less(9));
const env_int_key = env("INT_KEY", (x) => x.asInt().less(9));
lessOrEqual
const env_float_key = env("FLOAT_KEY", (x) => x.lessOrEqual(9));
const env_int_key = env("INT_KEY", (x) => x.asInt().lessOrEqual(9));
asBoolean
const env_key = env("BOOLEAN_KEY", (x) => x.asBoolean());
asEnum
const env_key = env("ENUM_KEY", (x) => x.asEnum(["option1", "option2"]));
asRegex
const env_key = env("ONLY_NUMBERS_KEY", (x) => x.asRegex(/^[0-9]*$/g));
asPort
const env_key = env("INT_KEY", (x) => x.asPort());
asJson
const env_key = env("JSON_KEY", (x) => x.asJson());
asJsonArray
const env_key = env("JSON_ARRAY_KEY", (x) => x.asJsonArray());
asLowerCase
const env_key = env("STRING_KEY", (x) => x.asLowerCase());
asUpperCase
const env_key = env("STRING_KEY", (x) => x.asUpperCase());
assert
const env_key = env("STRING_KEY", (x) =>
x.assert(
(v) => v === "foo",
(v) => `${v} is not foo.` // The message to throw.
)
);
transform
const env_key = env("STRING_KEY", (x) => x.transform((v) => v.toString().toLowerCase()););