@the-minimal/protocol
TypeScript icon, indicating that this package has built-in type declarations

0.6.0 • Public • Published

Protocol image

Minimal and modular binary schema-full protocol for TypeScript.

Highlights

  • Small (< 1.1 KB)
  • Minimal runtime overhead
  • Static type inference
  • BYO runtime data validation

Example

import { email, rangeLength } from "@the-minimal/validator";
import { EncodeObject, EncodeTap, EncodeAscii8 } from "@the-minimal/protocol";

const EncodeUserLogin = EncodeObject([
  {
    key: "email",
    type: EncodeTap(
      EncodeAscii8,
      email
    )
  },
  {
    key: "password",
    type: EncodeTap(
      EncodeAscii8,
      rangeLength(8, 16)
    )
  },
]);

const array = new Uint8Array(128);
const view = new DataView(array.buffer);
const state = {
  a: array,
  v: view,
  o: 0
};

EncodeUserLogin(state, {
  email: "user@example.com",
  password: "mysecretpassword"
});

return array.subarray(0, state.o);

Package Sidebar

Install

npm i @the-minimal/protocol

Weekly Downloads

71

Version

0.6.0

License

MIT

Unpacked Size

19.6 kB

Total Files

7

Last publish

Collaborators

  • yamiteru