2.0.1 • Published 9 months ago

@vcsuite/parsers v2.0.1

Weekly downloads
-
License
MIT
Repository
-
Last release
9 months ago

@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,
  parseStringLiteral,
  parseIntegerLiteral,
} 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

// parseStringLiteral
parseValue = parseStringLiteral('one', ['one', 'two'], 'two'); // 'one';
parseValue = parseStringLiteral('ONE', ['one', 'two'], 'two'); // 'two';

// parseIntegerLiteral
parseValue = parseIntegerLiteral(1, [1, 2, 3], 2); // 1';
parseValue = parseIntegerLiteral('1', [1, 2, 3], 2); // 1;
parseValue = parseIntegerLiteral('one', [1, 2, 3], 2); // 2;