@cloudpss/ubjson
Version:
Opinionated UBJSON encoder/decoder for CloudPSS.
31 lines (25 loc) • 1.03 kB
text/typescript
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();
}
}