跳转到内容

其他工具

write

导入

import { write } from "@tai-kun/surrealdb/cbor";

语法

write 是一个辅助函数,用于将所有可编码为 CBOR 格式的 JavaScript 值写入 Writer

write(writer: Writer, value: unknown, options?: WriteOptions): void;

参数

writer

用于将值写入 Uint8ArrayWriter

value

要编码为 CBOR 格式的 Uint8Array 的 JavaScript 值。value 可以是以下 JavaScript 值:

  • 原始值
  • number
  • bigint
  • string
  • boolean
  • null
  • undefined
  • 具有 .toCBOR() 方法的对象
  • 数组或 Set
  • 普通对象或 Map
  • Uint8Array
  • Simple 对象
  • 可以使用可选的 replacer 替换的值

如果不是原始值,并且 toCBOR 属性为函数,则优先调用该函数。

options

写入选项。

replacer?: Replacer | Replacer[]
编码器默认情况下会将大多数值编码为 CBOR,但对于不符合此要求的特殊值,可以将其替换为可编码的值。此选项可以通过指定函数或函数数组来实现替换处理。如果函数返回 Symbol.for("@tai-kun/surrealdb/cbor/continue") 获得的 CONTINUE 符号,则将调用后续函数。如果没有任何替换,则会抛出 SurrealTypeError
isSafeMapKey?: (key: unknown, map: ReadonlyMap<unknown, unknown>) => boolean
此选项是一个函数,用于验证 Map 对象的键是否安全。该函数接收两个参数 keymapkey 是键的值,map 是正在验证的 Map 对象。如果此函数返回 false,则会抛出 CborUnsafeMapKeyError。默认情况下,它会将“__proto__”或“constructor”视为不安全的键。请注意,指定此选项会完全覆盖默认验证。如果要向默认验证添加自定义验证,则也应将“__proto__”或“constructor”视为不安全的键。
isSafeObjectKey?: (key: unknown, obj: { readonly [p: string]: unknown }) => boolean
此选项是一个函数,用于验证普通对象的键是否安全。该函数接收两个参数 keyobjkey 是键的值,obj 是正在验证的普通对象。如果此函数返回 false,则会抛出 CborUnsafeMapKeyError。默认情况下,它会将“__proto__”或“constructor”视为不安全的键。请注意,指定此选项会完全覆盖默认验证。如果要向默认验证添加自定义验证,则也应将“__proto__”或“constructor”视为不安全的键。

返回值

无。

writeNumber

导入

import { writeNumber } from "@tai-kun/surrealdb/cbor";

语法

writeNumber 是一个辅助函数,用于将数值写入 Writer

writeNumber(writer: Writer, value: number): void;

参数

writer

用于将值写入 Uint8ArrayWriter

value

数值。如果是整数,则有效值为 -2^53-1 到 2^53-1。由于在 JavaScript 中无法判断 .0 是浮点数的方法,因此在这种情况下,它将作为整数编码为 CBOR。例如 -1.0-1,是一个整数。

返回值

无。

writeBigInt

导入

import { writeInteger } from "@tai-kun/surrealdb/cbor";

语法

writeBigInt 是一个辅助函数,用于将 bigint 写入 Writer

writeBigInt(writer: Writer, value: bigint): void;

参数

writer

用于将值写入 Uint8ArrayWriter

value

bigint。有效值为 -2^64 到 2^64-1。

返回值

无。

writeByteString

导入

import { writeByteString } from "@tai-kun/surrealdb/cbor";

语法

writeByteString 是一个辅助函数,用于将 Uint8Array 写入 Writer

writeByteString(writer: Writer, value: Uint8Array): void;

参数

writer

用于将值写入 Uint8ArrayWriter

value

Uint8Array

返回值

无。

writeUtf8String

导入

import { writeUtf8String } from "@tai-kun/surrealdb/cbor";

语法

writeUtf8String 是一个辅助函数,用于将 UTF-8 格式的字符串写入 Writer

writeUtf8String(writer: Writer, value: string): void;

参数

writer

用于将值写入 Uint8ArrayWriter

value

UTF-8 格式的字符串。

返回值

无。

writeEncodedUtf8String

导入

import { writeEncodedUtf8String } from "@tai-kun/surrealdb/cbor";

语法

writeEncodedUtf8String 是一个辅助函数,用于将 UTF-8 编码的字符串(Uint8Array)写入 Writer

writeEncodedUtf8String(writer: Writer, value: Uint8Array): void;

参数

writer

用于将值写入 Uint8ArrayWriter

value

UTF-8 编码的字符串(Uint8Array)。

返回值

无。

writeBoolean

导入

import { writeBoolean } from "@tai-kun/surrealdb/cbor";

语法

writeBoolean 是一个辅助函数,用于将布尔值写入 Writer

writeBoolean(writer: Writer, value: boolean): void;

参数

writer

用于将值写入 Uint8ArrayWriter

value

布尔值。

返回值

无。

writeNullable

导入

import { writeNullable } from "@tai-kun/surrealdb/cbor";

语法

writeNullable 是一个辅助函数,用于将 nullundefined 写入 Writer

writeNullable(writer: Writer, value: null | undefined): void;

参数

writer

用于将值写入 Uint8ArrayWriter

value

nullundefined

返回值

无。

writeHeader

导入

import { writeHeader } from "@tai-kun/surrealdb/cbor";

语法

writeHeader 是一个辅助函数,用于将 CBOR 数据项的头部写入 Writer

writeHeader(writer: Writer, mt: MajorType, length: number | bigint): void;

参数

writer

用于将值写入 Uint8ArrayWriter

mt

CBOR 的主要类型。必须是 0 到 7 之间的整数。

length

数据本身或数据的字节长度。

返回值

无。

writePayload

导入

import { writePayload } from "@tai-kun/surrealdb/cbor";

语法

writePayload 是一个辅助函数,用于将 CBOR 数据项的有效载荷写入 Writer

writePayload(writer: Writer, value: Uint8Array): void;

参数

writer

用于将值写入 Uint8ArrayWriter

value

CBOR 数据项的有效载荷。

返回值

无。