1.3.0 • Published 2 months ago

@harmoniclabs/cbor v1.3.0

Weekly downloads
-
License
Apache-2.0
Repository
github
Last release
2 months ago

CBOR (Concise Binary Object Representation)

Specification

Installation

npm install @harmoniclabs/cbor

Getting started

import { Cbor, CborText } from "@harmoniclabs/cbor";

const input = "6B68656C6C6F20776F726C64";

const cborObj = Cbor.parse( input );

if( cborObj instanceof CborText )
{
    console.log( cborObj.text ) // prints "hello world"
}

const encoded = Cbor.encode( cborObj ).toString();

console.log( encoded ) // prints "6b68656c6c6f20776f726c64" (lower case hex)

How to use

Cbor

to parse/encode CBOR you can use the Cbor static class.

export declare class Cbor {
    private constructor();
    static encode(cborObj: CborObj): CborString;
    static parse(cbor: CborString | Uint8Array | string): CborObj;
}

parse allows you to go from a thing that can represent CBOR (a CborString object is always valid) to a CborObj

encode takes a CborObj and returns a CborString.

CborString

is an object that represents a valid CBOR string;

extending a ByteString includes:

  • toString method that returns a lower case hex string.
  • toBuffer method that returns the Uint8Array representation of the string.
class CborString {
    toString(): string
    toBuffer(): Uint8Array
}

CborObj

result of Cbor.parse; represents a generic CBOR tag corresponding to one of the possible Major types.

type CborObj
    = CborNegInt
    | CborUInt
    | CborBytes
    | CborText
    | CborArray
    | CborMap
    | CborTag
    | CborSimple;