decode-ts
v0.0.14
Published
TypeScript compatible value decoding.
Downloads
3,589
Readme
decode-ts
TypeScript compatible value decoding.
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