CborSequenceEncoderStream
import { CborSequenceEncoderStream } from "jsr:@ende/cbor";class
class CborSequenceEncoderStream implements TransformStream<CborStreamInput, Uint8Array>A TransformStream that encodes a
ReadableStream
Example: Usage
import { encodeBase64Url } from "@ende/encoding";
import {
CborArrayDecodedStream,
CborArrayEncoderStream,
CborByteDecodedStream,
CborByteEncoderStream,
CborMapDecodedStream,
CborMapEncoderStream,
type CborStreamOutput,
CborSequenceDecoderStream,
CborSequenceEncoderStream,
CborTag,
CborTextDecodedStream,
CborTextEncoderStream,
} from "@ende/cbor";
const rawMessage = [
undefined,
null,
true,
false,
3.14,
5,
2n ** 32n,
"Hello World",
new Uint8Array(25),
new Date(),
new CborTag(33, encodeBase64Url(new Uint8Array(7))),
["cake", "carrot"],
{ a: 3, b: "d" },
CborByteEncoderStream.from([new Uint8Array(7)]),
CborTextEncoderStream.from(["Bye!"]),
CborArrayEncoderStream.from([
"Hey!",
CborByteEncoderStream.from([new Uint8Array(18)]),
]),
CborMapEncoderStream.from([
["a", 0],
["b", "potato"],
]),
];
async function logValue(value: CborStreamOutput) {
if (
value instanceof CborByteDecodedStream ||
value instanceof CborTextDecodedStream
) {
for await (const x of value) console.log(x);
} else if (value instanceof CborArrayDecodedStream) {
for await (const x of value) logValue(x);
} else if (value instanceof CborMapDecodedStream) {
for await (const [k, v] of value) {
console.log(k);
logValue(v);
}
} else if (value instanceof CborTag) {
console.log(value);
logValue(value.tagContent);
} else console.log(value);
}
for await (
const value of ReadableStream.from(rawMessage)
.pipeThrough(new CborSequenceEncoderStream())
.pipeThrough(new CborSequenceDecoderStream())
) {
logValue(value);
}
Constructors
constructor
new CborSequenceEncoderStream()Constructs a new instance.
Static methods
from
static from(asyncIterable: AsyncIterable<CborStreamInput> | Iterable<CborStreamInput>): CborSequenceEncoderStreamCreates a CborSequenceEncoderStream instance from an iterable of CborStreamInput chunks.
asyncIterable: AsyncIterable<CborStreamInput> | Iterable<CborStreamInput>The value to encode of type AsyncIterable
or Iterable .
Returns
A CborSequenceEncoderStream instance of the encoded data.
Example: Usage
import { encodeBase64Url } from "@ende/encoding";
import {
CborArrayDecodedStream,
CborArrayEncoderStream,
CborByteDecodedStream,
CborByteEncoderStream,
CborMapDecodedStream,
CborMapEncoderStream,
type CborStreamOutput,
CborSequenceDecoderStream,
CborSequenceEncoderStream,
CborTag,
CborTextDecodedStream,
CborTextEncoderStream,
} from "@ende/cbor";
const rawMessage = [
undefined,
null,
true,
false,
3.14,
5,
2n ** 32n,
"Hello World",
new Uint8Array(25),
new Date(),
new CborTag(33, encodeBase64Url(new Uint8Array(7))),
["cake", "carrot"],
{ a: 3, b: "d" },
CborByteEncoderStream.from([new Uint8Array(7)]),
CborTextEncoderStream.from(["Bye!"]),
CborArrayEncoderStream.from([
"Hey!",
CborByteEncoderStream.from([new Uint8Array(18)]),
]),
CborMapEncoderStream.from([
["a", 0],
["b", "potato"],
]),
];
async function logValue(value: CborStreamOutput) {
if (
value instanceof CborByteDecodedStream ||
value instanceof CborTextDecodedStream
) {
for await (const x of value) console.log(x);
} else if (value instanceof CborArrayDecodedStream) {
for await (const x of value) logValue(x);
} else if (value instanceof CborMapDecodedStream) {
for await (const [k, v] of value) {
console.log(k);
logValue(v);
}
} else if (value instanceof CborTag) {
console.log(value);
logValue(value.tagContent);
} else console.log(value);
}
for await (
const value of CborSequenceEncoderStream.from(rawMessage)
.readable
.pipeThrough(new CborSequenceDecoderStream())
) {
logValue(value);
}
Methods
readable
get readable(): ReadableStream<Uint8Array>The ReadableStream
Returns
A ReadableStream
Example: Usage
import { encodeBase64Url } from "@ende/encoding";
import {
CborArrayDecodedStream,
CborArrayEncoderStream,
CborByteDecodedStream,
CborByteEncoderStream,
CborMapDecodedStream,
CborMapEncoderStream,
type CborStreamOutput,
CborSequenceDecoderStream,
CborSequenceEncoderStream,
CborTag,
CborTextDecodedStream,
CborTextEncoderStream,
} from "@ende/cbor";
const rawMessage = [
undefined,
null,
true,
false,
3.14,
5,
2n ** 32n,
"Hello World",
new Uint8Array(25),
new Date(),
new CborTag(33, encodeBase64Url(new Uint8Array(7))),
["cake", "carrot"],
{ a: 3, b: "d" },
CborByteEncoderStream.from([new Uint8Array(7)]),
CborTextEncoderStream.from(["Bye!"]),
CborArrayEncoderStream.from([
"Hey!",
CborByteEncoderStream.from([new Uint8Array(18)]),
]),
CborMapEncoderStream.from([
["a", 0],
["b", "potato"],
]),
];
async function logValue(value: CborStreamOutput) {
if (
value instanceof CborByteDecodedStream ||
value instanceof CborTextDecodedStream
) {
for await (const x of value) console.log(x);
} else if (value instanceof CborArrayDecodedStream) {
for await (const x of value) logValue(x);
} else if (value instanceof CborMapDecodedStream) {
for await (const [k, v] of value) {
console.log(k);
logValue(v);
}
} else if (value instanceof CborTag) {
console.log(value);
logValue(value.tagContent);
} else console.log(value);
}
for await (
const value of ReadableStream.from(rawMessage)
.pipeThrough(new CborSequenceEncoderStream())
.pipeThrough(new CborSequenceDecoderStream())
) {
logValue(value);
}
writable
get writable(): WritableStream<CborStreamInput>The WritableStream
Returns
A WritableStream
Example: Usage
import { encodeBase64Url } from "@ende/encoding";
import {
CborArrayDecodedStream,
CborArrayEncoderStream,
CborByteDecodedStream,
CborByteEncoderStream,
CborMapDecodedStream,
CborMapEncoderStream,
type CborStreamOutput,
CborSequenceDecoderStream,
CborSequenceEncoderStream,
CborTag,
CborTextDecodedStream,
CborTextEncoderStream,
} from "@ende/cbor";
const rawMessage = [
undefined,
null,
true,
false,
3.14,
5,
2n ** 32n,
"Hello World",
new Uint8Array(25),
new Date(),
new CborTag(33, encodeBase64Url(new Uint8Array(7))),
["cake", "carrot"],
{ a: 3, b: "d" },
CborByteEncoderStream.from([new Uint8Array(7)]),
CborTextEncoderStream.from(["Bye!"]),
CborArrayEncoderStream.from([
"Hey!",
CborByteEncoderStream.from([new Uint8Array(18)]),
]),
CborMapEncoderStream.from([
["a", 0],
["b", "potato"],
]),
];
async function logValue(value: CborStreamOutput) {
if (
value instanceof CborByteDecodedStream ||
value instanceof CborTextDecodedStream
) {
for await (const x of value) console.log(x);
} else if (value instanceof CborArrayDecodedStream) {
for await (const x of value) logValue(x);
} else if (value instanceof CborMapDecodedStream) {
for await (const [k, v] of value) {
console.log(k);
logValue(v);
}
} else if (value instanceof CborTag) {
console.log(value);
logValue(value.tagContent);
} else console.log(value);
}
for await (
const value of ReadableStream.from(rawMessage)
.pipeThrough(new CborSequenceEncoderStream())
.pipeThrough(new CborSequenceDecoderStream())
) {
logValue(value);
}