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'));
log(jsonDecodeString(Person)('{ "id": 1 }'));
log(jsonDecodeString(Person)('{ "id": "foo", "age": 5 }'));
log(reportJsonDecodeError(jsonDecodeString(Person)('foo')));
log(reportJsonDecodeError(jsonDecodeString(Person)('{ "id": 1 }')));
Development
yarn
yarn compile
yarn lint