io-ts-reporters
    TypeScript icon, indicating that this package has built-in type declarations

    2.0.0 • 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/Either'
    import {pipe} from 'fp-ts/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

    129,703

    Version

    2.0.0

    License

    MIT

    Unpacked Size

    24.9 kB

    Total Files

    11

    Last publish

    Collaborators

    • oliverjash
    • gillchristian