Skip to content

Failure

ts
type Failure: {
  message: string;
  path: PathSegment[];
};

Type declaration

message

ts
message: string;

path

ts
path: PathSegment[];

ParseFailure

ts
type ParseFailure: {
  error: Failure;
  tag: "failure";
};

The parsing failed.

Type declaration

error

ts
error: Failure;

tag

ts
tag: "failure";

ParseResult<T>

ts
type ParseResult<T>: ParseSuccess<T> | ParseFailure;

Describes the result of a parsing operation. The tag and error properties can be used to distinguish between success and failure.

Type Parameters

Type Parameter
T

Examples

Use error to distinguish between success and failure:

ts
const result = parseNumber(data)
if(result.error) {
  console.error(formatResult(result))
  return
}
console.log(result.value)

Use tag to distinguish between success and failure:

ts
const result = parseNumber(data)
switch (result.tag) {
  case 'failure':
   console.error(formatResult(result))
   break
  case 'success':
   console.log(result.value)
   break

***

## ParseSuccess\<T\>

```ts
type ParseSuccess<T>: {
  error: never;
  tag: "success";
  value: T;
};

The data adheres to the schema. The value is equal to the parsed data

Type Parameters

Type Parameter
T

Type declaration

error?

ts
optional error: never;

tag

ts
tag: "success";

value

ts
value: T;

PathSegment

ts
type PathSegment: {
  key: string;
  tag: "object";
 } | {
  index: number;
  tag: "array";
};

Describes the path in a data structure where parsing failed.


failure()

ts
function failure(message): ParseFailure

Create a failure parsing result.

Example

ts
const customParser: Parser<number> = (data) => {
  if (typeof data === 'number') {
   return success(data)
  }
  return failure('Expected a number')
}

Parameters

ParameterTypeDescription
messagestring

Returns

ParseFailure


isFailure()

ts
function isFailure<T>(result): result is ParseFailure

Check if the result is a failure

Type Parameters

Type Parameter
T

Parameters

ParameterTypeDescription
resultParseResult<T>

Returns

result is ParseFailure


isSuccess()

ts
function isSuccess<T>(result): result is ParseSuccess<T>

Check if the result is a success

Type Parameters

Type Parameter
T

Parameters

ParameterTypeDescription
resultParseResult<T>

Returns

result is ParseSuccess<T>


propagateFailure()

ts
function propagateFailure(failureRes, pathSegment): ParseFailure

Propagate a failure result in a nested structure. When parsing objects and arrays with nested values, the failure at the root level should convey where in the hierarchy the failure occurred.

Parameters

ParameterTypeDescription
failureResParseFailure
pathSegmentPathSegment

Returns

ParseFailure


success()

ts
function success<T>(value): ParseSuccess<T>

Create a successful parsing result.

Example

ts
const customParser: Parser<number> = (data) => {
  if (typeof data === 'number') {
   return success(data)
  }
  return failure('Expected a number')
}
@param value

### Type Parameters

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

### Parameters

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

### Returns

[`ParseSuccess`](ParseResult.md#parsesuccesst)\<`T`\>