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)

Type Parameters ​

Type Parameter
T

Parameters ​

ParameterTypeDescription
guardGuard<T>

Returns ​

Parser<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>