@vcsuite/parsers
TypeScript icon, indicating that this package has built-in type declarations

1.0.3 • Public • Published

@vcs/parsers

A collection of option parsing functions. These are typically used to parse config options or other human inputs, providing a default value of the value.

TL/DR: a more elaborate alternative to const foo = bar || 1;

Example Usage

import { parseBoolean, parseInteger, parseNumber, parseNumberRange, parseEnumValue, parseEnumKey, } from '@vcs/parsers';

let parsedValue;
// parseBoolean
parsedValue = parseBoolean('true', false); // true
parsedValue = parseBoolean(true, false); // true
parsedValue = parseBoolean(1, false); // true
parsedValue = parseBoolean(null, false); // false

// parseNumber
parsedValue = parseNumber('1', 10); // 1
parsedValue = parseNumber(1, 10); // 1
parsedValue = parseNumber(1.1, 10); // 1.1
parsedValue = parseNumber(true, 10); // 10

// parseInteger
parsedValue = parseInteger('1', 10); // 1
parsedValue = parseInteger(1, 10); // 1
parsedValue = parseInteger(1.1, 10); // 1
parsedValue = parseInteger('foo', 10); // 10
parsedValue = parseInteger(true, 10); // 10

// parseNumberRange
parsedValue = parseNumberRange('1', 0.5, 0, 1); // 1
parsedValue = parseNumberRange(1, 0.5, 0, 1); // 1
parsedValue = parseNumberRange(1.1, 0.5, 0, 1); // 1
parsedValue = parseNumberRange(true, 0.5, 0, 1); // 0.5

const enumObject = {
  ONE: 1,
  TWO: 2,
  THREE: 3,
};

// parseEnumValue
parsedValue = parseEnumValue(1, enumObject, 3); // 1
parsedValue = parseEnumValue('1', enumObject, 3); // 1
parsedValue = parseEnumValue('foo', enumObject, 3); // 3
parsedValue = parseEnumValue(5, enumObject, 3); // 3

// parseEnumKey
parsedValue = parseEnumKey('ONE', enumObject, 3); // 1
parsedValue = parseEnumKey('one', enumObject, 3); // 1
parsedValue = parseEnumKey('foo', enumObject, 3); // 3
parsedValue = parseEnumKey(1, enumObject, 3); // 3

Readme

Keywords

none

Package Sidebar

Install

npm i @vcsuite/parsers

Weekly Downloads

338

Version

1.0.3

License

MIT

Unpacked Size

7.35 kB

Total Files

5

Last publish

Collaborators

  • bkuster
  • jbolling