1.2.3 • Published 10 months ago

@adam-rocska/ts-codec v1.2.3

Weekly downloads
-
License
MIT
Repository
github
Last release
10 months ago

Codec – Encode & Decode for TypeScript

NPM Version License

AspectBadge
MinifiedMinified
Minified + gzipMinified + gzip
Dependency CountDependency Count
Tree-shaking SupportTree-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);