コンテンツにスキップ

その他のツール

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 オブジェクトのキーが安全であるか検証する関数です。関数は keymap の 2 つの引数を受け取ります。key はキーの値で、map 検証している Map オブジェクトです。この関数が false を返すと CborUnsafeMapKeyError が投げられます。デフォルトでは "__proto__" または "constructor" を安全ではないキーと判定します。このオプションを指定すると、デフォルトの検証が完全に上書きされることに注意してください。デフォルトの検証に独自の検証を加える場合は、"__proto__" または "constructor" も安全ではないキーと判定するべきです。
isSafeObjectKey?: (key: unknown, obj: { readonly [p: string]: unknown }) => boolean
このオプションは、プレーンオブジェクトのキーが安全であるか検証する関数です。関数は keyobj の 2 つの引数を受け取ります。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";

構文

writeBigIntbigintWriter で書き込むヘルパー関数です。

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

引数

writer

値を Uint8Array へ書き込むための Writer です。

value

bigint です。-2^64 から 2^64-1 までの値が有効です。

返値

なし。

writeByteString

インポート

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

構文

writeByteStringUint8ArrayWriter で書き込むヘルパー関数です。

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";

構文

writeNullablenull または undefinedWriter で書き込むヘルパー関数です。

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 のデータアイテムのペイロードです。

返値

なし。