Miss any of our Open RFC calls?Watch the recordings here! »

io-ts-reporters

1.2.2 • Public • Published

io-ts-reporters

Error reporters for io-ts.

Currently this package only includes one reporter. The output is an array of strings in the format of:

Expecting ${expectedType} at ${path} but instead got: ${expectedType}

And for union types:

Expecting one of:
    ${unionType1}
    ${unionType2}
    ${...}
    ${unionTypeN}
at ${path} but instead got: ${actualValue}

Installation

yarn add io-ts-reporters

Example

import * as t from 'io-ts';
import reporter from 'io-ts-reporters';
 
const User = t.interface({ name: t.string });
 
// When decoding fails, the errors are reported
reporter.report(User.decode({ nam: 'Jane' }));
//=> ['Expecting string at name but instead got: undefined']
 
// Nothing gets reported on success
reporter.report(User.decode({ name: 'Jane' }));
//=> []

To only format the validation errors in case the validation failed (ie. mapLeft) use formatValidationErrors instead.

import * as t from 'io-ts';
import { formatValidationErrors } from 'io-ts-reporters';
import * as E from 'fp-ts/lib/Either';
import { pipe } from 'fp-ts/lib/pipeable';
 
const User = t.interface({ name: t.string });
 
const result = User.decode({ nam: 'Jane' }); // Either<t.Errors, User>
 
E.mapLeft(formatValidationErrors)(result); // Either<string[], User>

For more examples see the tests.

TypeScript compatibility

io-ts-reporters version required typescript version
1.0.0 3.5+
<= 0.0.21 2.7+

Testing

yarn
yarn run test

Credits

This library was created by OliverJAsh.

Install

npm i io-ts-reporters

DownloadsWeekly Downloads

110,494

Version

1.2.2

License

MIT

Unpacked Size

24.4 kB

Total Files

15

Last publish

Collaborators

  • avatar
  • avatar