Skip to main content

env-validators

Tiny library with validators for env variables

Installation

npm i --save @tinkoff/env-validators

or

yarn add @tinkoff/env-validators

Validators List

  • isUrl - check if string is valid URL
  • isNumber - check if value is number
  • isTrue - check if value is true
  • isFalse - check if value is false
  • isOneOf - check if value is one of presented

Validators Interface

(value: string) => boolean | string;

Returns any boolean (true or false) if value is valid, string with error otherwise

Usage

isUrl

import { isUrl } from '@tinkoff/env-validators';

isUrl('https://google.com'); // false
isUrl('Not valid url'); // 'URL is not valid'

isNumber

import { isNumber } from '@tinkoff/env-validators';

isNumber('https://google.com'); // value is not a number
isNumber('5'); // true

isTrue

import { isTrue } from '@tinkoff/env-validators';

isTrue('something'); // value is not a true
isTrue('true'); // true

isFalse

import { isFalse } from '@tinkoff/env-validators';

isFalse('true'); // value is not a false
isFalse('false'); // true

isOneOf

import { isOneOf } from '@tinkoff/env-validators';

isOneOf(['1', '2', '3'])('isOneOf'); // value is not in list
isOneOf(['1', '2'])('1'); // true
isOneOf(['true', 'false'])('true'); // true

startsWith

import { startsWith } from '@tinkoff/env-validators';

startsWith('https')('http://google.com'); // value should starts with https
startsWith('http')('http://yandex.ru'); // true

endsWith

import { endsWith } from '@tinkoff/env-validators';

endsWith('/')('https://google.com'); // value should ends with /
endsWith('/')('http://yandex.ru/'); // true

or to validate ENV variable in @tramvai

import { provide } from '@tramvai/core';
import { isUrl } from '@tinkoff/env-validators';
import { ENV_USED_TOKEN } from '@tramvai/module-common';

providers: [
provide({
provide: ENV_USED_TOKEN,
multi: true,
useValue: [
{ key: 'TINKOFF_API', validator: isUrl },
],
}),
]

Combinations of validators

To combine two or more validators call combineValidators method like this:

import { endsWith, isUrl, combineValidators } from '@tinkoff/env-validators';

combineValidators([isUrl, endsWith('/')])('https://google.com'); // 'value should ends with /'
combineValidators([isUrl, endsWith('/')])('not url but with backslash/'); // 'URL is not valid'
combineValidators([isUrl, endsWith('/')])('not url at all'); // 'URL is not valid; value should ends with /'
combineValidators([isUrl, endsWith('/')])('https://google.com/'); // false

or to validate ENV variable in @tramvai

import { provide } from '@tramvai/core';
import { endsWith, isUrl, combineValidators } from '@tinkoff/env-validators';
import { ENV_USED_TOKEN } from '@tramvai/module-common';

providers: [
provide({
provide: ENV_USED_TOKEN,
multi: true,
useValue: [
{ key: 'TINKOFF_API', validator: combineValidators([isUrl, endsWith('/')]) },
],
}),
]