env-sanitize
TypeScript icon, indicating that this package has built-in type declarations

2.0.0 • Public • Published

env-sanitize 🧹

PRs Welcome NPM version
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) => (=== "one" ? 1 : 2))
);

Sanitizers

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()););

Readme

Keywords

none

Package Sidebar

Install

npm i env-sanitize

Weekly Downloads

57

Version

2.0.0

License

MIT

Unpacked Size

48.9 kB

Total Files

50

Last publish

Collaborators

  • tal952