# @vcsuite/parsers

> Parsers for option parsing

Latest version **2.0.1** (published 2024-10-24) · MIT license · 0 weekly downloads

## Install

```sh
npm install @vcsuite/parsers
pnpm add @vcsuite/parsers
yarn add @vcsuite/parsers
bun add @vcsuite/parsers
```

## Health

**Score 40/100 (D)** — status: maintenance-mode.

Positive: has types; esm support; no vulnerabilities; high quality score.

Warnings: low downloads.

Negative: stale; low maintenance score.

## Facts

| | |
|---|---|
| Version | 2.0.1 |
| Published | 2024-10-24 |
| First published | 2021-04-16 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | bundled |
| Module format | ESM + CommonJS |
| Dependencies | 0 |
| Unpacked size | 14 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| Author | Jannes Bolling |
| Maintainers | bkuster, jbolling |

## Links

- npm: https://www.npmjs.com/package/@vcsuite/parsers
- npm.io page: https://npm.io/package/@vcsuite/parsers

## Recent versions

- 2.0.1 (latest) — 2024-10-24
- 2.0.0 — 2024-09-25
- 1.0.3 — 2023-05-22
- 1.0.2 — 2023-05-22
- 1.0.1 — 2021-11-04
- 1.0.0 — 2021-04-16

## README

# @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

```javascript
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;
```

---
_Source: https://npm.io/package/@vcsuite/parsers · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
