0.4.2 • Published 7 months ago

relater v0.4.2

Weekly downloads
9
License
MIT
Repository
github
Last release
7 months ago

relater

Relater seamlessly maps ArrayBuffer content to user-defined objects.

Usage

with Deno

import { Relater } from "https://deno.land/x/relater/mod.ts";

const relater = new Relater(
  {
    type: "object",
    of: [
      { name: "i8", type: "i8" },
      { name: "u8", type: "u8" },
      { name: "i16", type: "i16" },
      { name: "u16", type: "u16" },
      { name: "i32", type: "i32" },
      { name: "u32", type: "u32" },
      { name: "i64", type: "i64" },
      { name: "u64", type: "u64" },
      { name: "f32", type: "f32" },
      { name: "f64", type: "f64" },
      { name: "string", type: "string", size: 16 },
    ],
  } as const satisfies RelateRule,
);

const buffer = new Uint8Array([/* ... */]);
// decode
const value = relater.decode(buffer.buffer);

console.log(value); // { i8: 0, u8: 0, i32: 0, u32: 0, i64: 0n, u64: 0n }

value.i8 = 1;
value.u8 = 2;

// encode
const encoded = relater.encode(value);

console.log(encoded); // Uint8Array(8) [ 1, 2, ... ]

with Node.js & Browser

Install

npm install relater
import { Relater } from "relater";

// Usage is as above :-)

Supported Types

TypeJavaScript EquivalentDescription
f64number64-bit floating point number
f32number32-bit floating point number
i64bigint64-bit signed integer
u64bigint64-bit unsigned integer
i32number32-bit signed integer
u32number32-bit unsigned integer
i16number16-bit signed integer
u16number16-bit unsigned integer
i8number8-bit signed integer
u8number8-bit unsigned integer
stringstringString type (length is based on buffer)
objectobjectObject type
arrayArrayArray type
0.4.1

7 months ago

0.4.2

7 months ago

0.4.0

8 months ago

0.3.0

9 months ago

0.3.1

9 months ago

0.2.0

5 years ago

0.1.1

5 years ago

0.1.0

5 years ago

0.0.1

5 years ago

0.0.0

6 years ago