0.0.6 • Published 6 years ago
@aibex/envtools v0.0.6
envtools
Simple Functions for a Sane Environment
Add via Yarn
yarn add @aibex/envtools
or via npm
npm install @aibex/envtools
import { requires, defaults } from "@aibex/envtools";
// require certain ENV values to be present
requires(["REQUIRED", "ENV", "NAMES"]); // throws if missing, list in e.data.env
requires(["ALSO", "WITH", "CALLBACKS"], err => {
  // if err, then err.data.env contains missing
});
// insist on defaults in ENV if not defined
defaults({
  ENV_NAME: "DEFAULT_VALUE_HERE",
  COERCED_VALUES: 1, // will be "1" for compatibility with process.env
});requires()
provide a list of required environment variables, and either (A) throw an exception or (B) pass the error to the callback on failure
requires(list, [cb])
| param | type | description | 
|---|---|---|
| list | array | a list of all environment variables to check (case sensitive) | 
| cb | function | (optional) if provided, the callback will be triggered. Instead of throwing an error, the error will be the first argument passed to the callback in order to comply with node's cb(err, data)style callback | 
defaults()
ensure a set of environment variables are defined, supplying a default value of any values are currently undefined
defaults(obj)
// obj
{
  ENV_KEY: "ENV_VALUE";
}| param | type | description | 
|---|---|---|
| obj | object | An object of key/value pairs, where each keyis the env variable that should have a default, andvalueis the default value ifprocess.env[key]is not set. Values are coerced to strings via string concatenation. | 
Tests
Test are written using ava. You can run the test suite using yarn test.
Releasing
While we use yarn for everything internally, release-it works more consistently with npm run-script release. This is because of how npm/yarn manage their logins.