Aspect | Badge |
---|---|
Minified | |
Minified + gzip | |
Dependency Count | |
Tree-shaking Support |
A TypeScript library that provides a strongly-typed and user-friendly API for encoding and decoding data types.
Inspired by Swift's Codable API, this library aims to offer a straightforward functional API for basic encoding and decoding tasks. While it's a simplified initial release, future iterations will introduce more advanced features.
For detailed API documentation, please refer to this repository's GitHub Pages.
const testCodec = record({
firstName: string,
lastName: optional(string),
age: optional(number),
traits: array(
record({
isVenerable: boolean,
label: string,
labelAlternatives: set(string),
aquiredOn: date,
})
),
});
type TestRecord = SourceType<typeof testCodec>;
const source: TestRecord = {
firstName: 'Adam',
lastName: 'Rocska',
age: undefined,
traits: [],
};
const str = testCodec.encode(source);
const result = testCodec.decode(str);
expect(result).toMatchObject(source);