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

0.0.14 • Public • Published

decode-ts

TypeScript compatible value decoding.

  • io-ts is used to perform IO validation for type safety.
  • fp-ts is used for its Either type.

This is mostly a wrapper around the terrific io-ts to add a call to JSON.parse. You could achieve something similar with an io-ts type, however there is no way to propoagate the JSON parsing errors, hence the need for the wrapper.

Installation

yarn add decode-ts

Example

import * as t from 'io-ts';
 
import { jsonDecodeString, reportJsonDecodeError } from './index';
 
const Person = t.interface({
    id: t.string,
    age: t.number,
});
 
const log = (val: any) => console.log(JSON.stringify(val));
 
log(jsonDecodeString(Person)('foo')); // Left ParsingError
log(jsonDecodeString(Person)('{ "id": 1 }')); // Left ValidationErrors
log(jsonDecodeString(Person)('{ "id": "foo", "age": 5 }')); // Right { id: 'foo', age: 5 }
 
// Use the reporter for friendly error messages:
 
log(reportJsonDecodeError(jsonDecodeString(Person)('foo')));
// ["Unexpected token o in JSON at position 1"]
log(reportJsonDecodeError(jsonDecodeString(Person)('{ "id": 1 }')));
// ["Expecting string at id but instead got: 1.","Expecting number at age but instead got: undefined."]

Development

yarn
yarn compile
yarn lint

Readme

Keywords

none

Package Sidebar

Install

npm i decode-ts

Weekly Downloads

729

Version

0.0.14

License

none

Unpacked Size

7.28 kB

Total Files

10

Last publish

Collaborators

  • oliverjash