Skip to content

InfallibleParser()<T>

ts
type InfallibleParser<T>: (data) => ParseSuccess<T>;

A parser that always succeeds

Type Parameters

Type Parameter
T

Parameters

ParameterType
dataunknown

Returns

ParseSuccess<T>


OptionalParser()<T>

ts
type OptionalParser<T>: (data) => ParseResult<T | undefined | OmitProperty>;

Special parser to check optional values

Type Parameters

Type Parameter
T

Parameters

ParameterType
dataunknown

Returns

ParseResult<T | undefined | OmitProperty>


Parser()<T>

ts
type Parser<T>: (data) => ParseResult<T>;

Type Parameters

Type Parameter
T

Parameters

ParameterType
dataunknown

Returns

ParseResult<T>


RequiredParser()<T>

ts
type RequiredParser<T>: (data) => ParseResult<Exclude<T, OmitProperty>>;

A parser that does not represent an optional property.

Type Parameters

Type Parameter
T

Parameters

ParameterType
dataunknown

Returns

ParseResult<Exclude<T, OmitProperty>>


UnsuccessfulParser()

ts
type UnsuccessfulParser: (data) => ParseFailure;

A parser that always fails

Parameters

ParameterType
dataunknown

Returns

ParseFailure


chain()

ts
function chain<A, B>(parser, parseSuccess): Parser<B>

Transform successful results into either success or failure. This is useful for chaining parsers.

Example

After parsing an array of numbers, ensure it is non-empty:

const parseNonEmptyArray = chain(array(parseNumber), (value) =>
          value.length > 0
            ? success(value)
            : failure('Expected non-empty array'),
        )

Type Parameters

Type Parameter
A
B

Parameters

ParameterTypeDescription
parserParser<A>
parseSuccess(value) => ParseResult<B>

Returns

Parser<B>


map()

ts
function map<A, B>(parser, mapSuccess): Parser<B>

Transform the values of successful results.

Example

Transform strings to uppercase

ts
const parseToUpperCase = map(parseString, (str) => str.toUpperCase())
parseToUpperCase('hello') // -> ParseSuccess<'HELLO'>
parseToUpperCase(123) // -> ParseFailure

Type Parameters

Type Parameter
A
B

Parameters

ParameterTypeDescription
parserParser<A>
mapSuccess(value) => B

Returns

Parser<B>


parserFromGuard()

ts
function parserFromGuard<T>(guard): Parser<T>

Construct a parser from a type guard. Tip: construct parsers from scratch for better error messages, and generally more flexibility.

Example

ts
const isUser = objectGuard({
  id: isNumber,
  name: isString,
})
const parseUser = parserFromGuard(isUser)
@param guard

### Type Parameters

| Type Parameter |
| ------ |
| `T` |

### Parameters

| Parameter | Type |
| ------ | ------ |
| `guard` | [`Guard`](../guards/Guard.md#guardt)\<`T`\> |

### Returns

[`Parser`](Parser.md#parsert)\<`T`\>

***

## recover()

```ts
function recover<A>(parser, parseFailure): Parser<A>

Transform failed results into either success or failure. This is useful for error handling.

Example

Fall back to a default value if parsing fails:

const parseCount = recover(
  parseNumber,
  () => 0
)

Type Parameters

Type Parameter
A

Parameters

ParameterTypeDescription
parserParser<A>
parseFailure(error) => ParseResult<A>

Returns

Parser<A>