1.1.0 • Published 3 years ago

@digitsole/blackburn-configuration v1.1.0

Weekly downloads
-
License
UNLICENSED
Repository
-
Last release
3 years ago

@digitsole/blackburn-configuration

Installation

pnpm install @digitsole/blackburn-configuration

Overview

This is a utility for retrieving and validate environment variables.

Usage

Factories

configFactory

Create a configuration object

import { configFactory, get } from '@digitsole/blackburn-configuration';

const config = configFactory({
    thing: get('thing', 'string'),
});

configFactoryWithComputed

Create a configuration object with the ability to process computed values

import { configFactoryWithComputed, get } from '@digitsole/blackburn-configuration';

const config = configFactoryWithComputed({
    thing: get('thing', 'string'),
    another: get('another', 'string'),
}, ({ something }) => ({
    combo: thing + another
}));

Retrievers

The variables must be declared as follows :

CONFIG_THING=lorem

Warning : the CONFIG prefix is mandatory

A retriever will check if the value exist and, if declared, do a validation related to the validation type.

get

Retrieve the value of an environment variable and throw if the variable isn't found AND if default value isn't defined

Usage examples :

// Check if `CONFIG_THING` exist and verify if this value is a `string`
const thing = get('thing', 'string');
// Check if `CONFIG_THING2` exist and verify if this value is a `boolean`
const thing2 = get('thing2', 'boolean');
// Check if `CONFIG_THING3` exist and don't verify the type (not recommended)
const thing3 = get('thing3');
// Check if `CONFIG_THING` exist, if not use the default value instead
const thing4 = get('thing4', 'string', 'ipsum');
// Check if `CONFIG_THING_NESTED` exist and verify if this value is a `boolean`
const thingNested = get('thing.nested', 'boolean');

getOrThrow (mostly recommended)

Retrieve the value of an environment variable and throw if the variable isn't found.

It's the same behaviour as get, except that the default value disappears.

Errors

ConfigNotFoundError

ConfigTypeError