Class CborArrayEncoderStream

A TransformStream that encodes a ReadableStream into CBOR "Indefinite Length Array". RFC 8949 - Concise Binary Object Representation (CBOR)

import { assert, assertEquals } from "@std/assert";
import {
CborArrayDecodedStream,
CborArrayEncoderStream,
CborSequenceDecoderStream,
} from "@std/cbor";

const rawMessage = ["a".repeat(100), "b".repeat(100), "c".repeat(100)];

for await (
const value of ReadableStream.from(rawMessage)
.pipeThrough(new CborArrayEncoderStream())
.pipeThrough(new CborSequenceDecoderStream())
) {
assert(value instanceof CborArrayDecodedStream);
let i = 0;
for await (const text of value) {
assert(typeof text === "string");
assertEquals(text, rawMessage[i++]);
}
}
Implements

Constructors

Accessors

Methods

Constructors

Accessors

  • get readable(): ReadableStream<Uint8Array>
  • The ReadableStream associated with the instance, which provides the encoded CBOR data as Uint8Array chunks.

    Returns ReadableStream<Uint8Array>

    A ReadableStream.

    import { assert, assertEquals } from "@std/assert";
    import {
    CborArrayDecodedStream,
    CborArrayEncoderStream,
    CborSequenceDecoderStream,
    } from "@std/cbor";

    const rawMessage = ["a".repeat(100), "b".repeat(100), "c".repeat(100)];

    for await (
    const value of ReadableStream.from(rawMessage)
    .pipeThrough(new CborArrayEncoderStream())
    .pipeThrough(new CborSequenceDecoderStream())
    ) {
    assert(value instanceof CborArrayDecodedStream);
    let i = 0;
    for await (const text of value) {
    assert(typeof text === "string");
    assertEquals(text, rawMessage[i++]);
    }
    }
  • get writable(): WritableStream<CborStreamInput>
  • The WritableStream associated with the instance, which accepts CborStreamInput chunks to be encoded into CBOR format.

    Returns WritableStream<CborStreamInput>

    A WritableStream.

    import { assert, assertEquals } from "@std/assert";
    import {
    CborArrayDecodedStream,
    CborArrayEncoderStream,
    CborSequenceDecoderStream,
    } from "@std/cbor";

    const rawMessage = ["a".repeat(100), "b".repeat(100), "c".repeat(100)];

    for await (
    const value of ReadableStream.from(rawMessage)
    .pipeThrough(new CborArrayEncoderStream())
    .pipeThrough(new CborSequenceDecoderStream())
    ) {
    assert(value instanceof CborArrayDecodedStream);
    let i = 0;
    for await (const text of value) {
    assert(typeof text === "string");
    assertEquals(text, rawMessage[i++]);
    }
    }

Methods

  • Creates a CborArrayEncoderStream instance from an iterable of CborStreamInput chunks.

    Parameters

    Returns CborArrayEncoderStream

    A CborArrayEncoderStream instance of the encoded data.

    import { assert, assertEquals } from "@std/assert";
    import {
    CborArrayDecodedStream,
    CborArrayEncoderStream,
    CborSequenceDecoderStream,
    } from "@std/cbor";

    const rawMessage = ["a".repeat(100), "b".repeat(100), "c".repeat(100)];

    for await (
    const value of CborArrayEncoderStream.from(rawMessage)
    .readable
    .pipeThrough(new CborSequenceDecoderStream())
    ) {
    assert(value instanceof CborArrayDecodedStream);
    let i = 0;
    for await (const text of value) {
    assert(typeof text === "string");
    assertEquals(text, rawMessage[i++]);
    }
    }