UNPKG

@cloudpss/ubjson

Version:

Opinionated UBJSON encoder/decoder for CloudPSS.

31 lines (25 loc) 1.03 kB
import { getEncoder } from './encoder.js'; import { Decoder } from './decoder.js'; import type { EncodeOptions, DecodeOptions } from './options.js'; export { UnexpectedEofError as UnexpectedEof } from './helper/errors.js'; export type { EncodeOptions, DecodeOptions }; /** 编码为 UBJSON */ export function encode(value: unknown, options?: EncodeOptions): Uint8Array<ArrayBuffer> { return getEncoder(options).encode(value); } /** 编码为 UBJSON */ export function encodeMany(value: Iterable<unknown>, options?: EncodeOptions): Uint8Array<ArrayBuffer> { return getEncoder(options).encodeMany(value); } /** 解码 UBJSON */ export function decode(value: BufferSource, options?: DecodeOptions): unknown { const decoder = new Decoder(value, options); return decoder.decode(); } /** 解码 UBJSON */ export function* decodeMany(value: BufferSource, options?: DecodeOptions): Iterable<unknown> { const decoder = new Decoder(value, options); while (!decoder.ended) { yield decoder.decode(); } }