toSurql
toSurql
函数用于将 JavaScript 值转换为 SurrealQL 字符串。
导入
import { toSurql } from "@tai-kun/surrealdb/utils";
使用方法
function toSurql(value: unlnown): string;
参数
value
JavaScript 值。可以接受以下类型的值:
string
number
bigint
boolean
undefined
null
{ toSurql(): string }
Date
{ toJSON(): string }
unknown[]
{ [key: string]: unknown }
Set<unknown>
Map<unknown, unknown>
unknown
表示由上述类型构成的值。
转换时,上述顺序表示优先级。也就是说,即使普通对象具有 .toJSON
函数,如果它也具有 .toSurql
函数,则后者优先。
普通对象的判断使用的是 is-plain-obj
。因此,如果普通对象既不具有 .toSurql
或 .toJSON
,又具有 Symbol.toStringTag
或 Symbol.iterator
,则不会将其判断为对象,而是抛出错误。
返回值
SurrealQL 字符串。
例子
import { toSurql } from "@tai-kun/surrealdb/utils";
const surql = toSurql({ bigint: 9007199254740992n, // Number.MAX_SAFE_INTEGER + 1 boolean: [true, false], date: new Date("2024-06-01T12:34:56.789Z"), map: new Map([ [0, { toJSON: () => [0, 1], }], ]), null: null, number: 123, set: new Set([{ toSurql: () => `<bytes>"hello"`, }]), string: "字符串", undefined: undefined,});
console.log(surql);
输出:
{bigint:9007199254740992,boolean:[true,false],date:d'2024-06-01T12:34:56.789Z',map:{0:[0,1]},null:NULL,number:123,set:[<bytes>"hello"],string:'字符串',undefined:NONE}