其他工具
write
导入
import { write } from "@tai-kun/surrealdb/cbor";
语法
write
是一个辅助函数,用于将所有可编码为 CBOR 格式的 JavaScript 值写入 Writer
。
write(writer: Writer, value: unknown, options?: WriteOptions): void;
参数
writer
用于将值写入 Uint8Array
的 Writer
。
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
对象的键是否安全。该函数接收两个参数key
和map
。key
是键的值,map
是正在验证的Map
对象。如果此函数返回false
,则会抛出CborUnsafeMapKeyError
。默认情况下,它将"__proto__"
或"constructor"
判定为不安全的键。请注意,指定此选项将完全覆盖默认验证。如果要向默认验证添加自定义验证,则也应该将"__proto__"
或"constructor"
判定为不安全的键。 isSafeObjectKey?: (key: unknown, obj: { readonly [p: string]: unknown }) => boolean
- 此选项是一个函数,用于验证普通对象的键是否安全。该函数接收两个参数
key
和obj
。key
是键的值,obj
是正在验证的普通对象。如果此函数返回false
,则会抛出CborUnsafeMapKeyError
。默认情况下,它将"__proto__"
或"constructor"
判定为不安全的键。请注意,指定此选项将完全覆盖默认验证。如果要向默认验证添加自定义验证,则也应该将"__proto__"
或"constructor"
判定为不安全的键。
返回值
无。
writeNumber
导入
import { writeNumber } from "@tai-kun/surrealdb/cbor";
语法
writeNumber
是一个辅助函数,用于将数字写入 Writer
。
writeNumber(writer: Writer, value: number): void;
参数
writer
用于将值写入 Uint8Array
的 Writer
。
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
用于将值写入 Uint8Array
的 Writer
。
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
用于将值写入 Uint8Array
的 Writer
。
value
Uint8Array
。
返回值
无。
writeUtf8String
导入
import { writeUtf8String } from "@tai-kun/surrealdb/cbor";
语法
writeUtf8String
是一个辅助函数,用于将 UTF-8 格式的字符串写入 Writer
。
writeUtf8String(writer: Writer, value: string): void;
参数
writer
用于将值写入 Uint8Array
的 Writer
。
value
UTF-8 格式的字符串。
返回值
无。
writeEncodedUtf8String
导入
import { writeEncodedUtf8String } from "@tai-kun/surrealdb/cbor";
语法
writeEncodedUtf8String
是一个辅助函数,用于将 UTF-8 编码的字符串 (Uint8Array
) 写入 Writer
。
writeEncodedUtf8String(writer: Writer, value: Uint8Array): void;
参数
writer
用于将值写入 Uint8Array
的 Writer
。
value
UTF-8 编码的字符串 (Uint8Array
)。
返回值
无。
writeBoolean
导入
import { writeBoolean } from "@tai-kun/surrealdb/cbor";
语法
writeBoolean
是一个辅助函数,用于将布尔值写入 Writer
。
writeBoolean(writer: Writer, value: boolean): void;
参数
writer
用于将值写入 Uint8Array
的 Writer
。
value
布尔值。
返回值
无。
writeNullable
导入
import { writeNullable } from "@tai-kun/surrealdb/cbor";
语法
writeNullable
是一个辅助函数,用于将 null
或 undefined
写入 Writer
。
writeNullable(writer: Writer, value: null | undefined): void;
参数
writer
用于将值写入 Uint8Array
的 Writer
。
value
null
或 undefined
。
返回值
无。
writeHeader
导入
import { writeHeader } from "@tai-kun/surrealdb/cbor";
语法
writeHeader
是一个辅助函数,用于将 CBOR 数据项的头部写入 Writer
。
writeHeader(writer: Writer, mt: MajorType, length: number | bigint): void;
参数
writer
用于将值写入 Uint8Array
的 Writer
。
mt
CBOR 的主要类型。必须是 0 到 7 之间的整数。
length
数据本身或数据的字节长度。
返回值
无。
writePayload
导入
import { writePayload } from "@tai-kun/surrealdb/cbor";
语法
writePayload
是一个辅助函数,用于将 CBOR 数据项的有效负载写入 Writer
。
writePayload(writer: Writer, value: Uint8Array): void;
参数
writer
用于将值写入 Uint8Array
的 Writer
。
value
CBOR 数据项的有效负载。
返回值
无。