UNPKG

env-validate

Version:

Validates your environment variables are set at runtime.

76 lines (53 loc) 2.35 kB
[![License](https://img.shields.io/static/v1.svg?label=license&message=MIT&color=green)](https://github.com/olivermicke/env-validate/blob/master/LICENSE) [![NPM version](https://img.shields.io/static/v1.svg?label=npm&message=1.1.0&color=red)](https://www.npmjs.com/package/env-validate) [![Build status](https://travis-ci.com/olivermicke/env-validate.svg?token=SWpxHfhaeYH3MqcgBPQz&branch=master)](https://travis-ci.com/olivermicke/env-validate) [![TypeScript Definitions](https://img.shields.io/static/v1.svg?label=type%20definitions&message=d.ts&color=blue)](https://github.com/olivermicke/env-validate/blob/master/src/env-validate.d.ts) # env-validate env-validate is a zero-dependency library which validates that the environment variables specified in your `.env.template` file are set at runtime. ## Installation ```console yarn add env-validate ``` ```console npm install env-validate --save ``` ## Usage By default, env-validate will look for a `.env.template` file in one of its parent directories so that you don't have to provide a single argument. ```js const envValidate = require('env-validate'); // Throws if any variable specified in `.env.template` is not set at runtime. envValidate(); ``` Alternatively, you can [explicitly pass in the absolute path of your template file](#templatePath). ### Optional Args Optionally, an object containing any of these properties can be passed as argument: ```typescript { onError?: Function; optionals?: string[]; templatePath?: string; } ``` ##### onError A custom error callback can be specified. Instead of throwing, env-validate will call the given function. ```js envValidate({ onError: envVarName => { console.log(envVarName); }, }); ``` ##### optionals If any of the variables declared in your template file should be treated as optional, you can pass them in as array. env-validate will not throw an exception or call `onError` for `optionals`. ```js envValidate({ optionals: ['FOO'], }); ``` ##### templatePath env-validate will try to automatically find your template file by recursively looking for a `.env.template` in one of its _direct parent_ directories. Should your template file not be found, you can explicitly specify the absolute path of your template file. ```js envValidate({ templatePath: '<absolute-path-to-template-file>', }); ```