function createBaichuanEncodeStream
createBaichuanEncodeStream(): TransformStream<BaichuanMessage, Uint8Array>

Creates a TransformStream that writes each message as header, body and payload, in one chunk per message.

The header is written as given: bodyLength is not recomputed. Build requests with createMessage from @hertzg/reolink-api/protocol/message to get it right.

Examples

Encode a subscribe request

import { assertEquals } from "@std/assert";
import { createMessage } from "@hertzg/reolink-api/protocol/message";
import { createBaichuanEncodeStream } from "@hertzg/reolink-api/streams/encode";

const [bytes] = await Array.fromAsync(
  ReadableStream.from([
    createMessage({ cmdId: 31, channelId: 251, messageId: 3 }),
  ]).pipeThrough(createBaichuanEncodeStream()),
);

assertEquals(bytes.length, 24);

Return Type

A TransformStream from messages to bytes.

Usage

import { createBaichuanEncodeStream } from "streams/encode.ts";