@adam-rocska/ts-codec
v1.2.3
Published
TypeScript library offering robust contracts for encoding and decoding values with strong type safety.
Downloads
64
Maintainers
Readme
Codec – Encode & Decode for TypeScript
| 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.
Example
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);