컨텐츠로 건너뛰기

toSurql

toSurql 함수는 JavaScript 값을 SurrealQL 문자열로 변환하는 함수입니다.

import

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 함수를 가지고 있다면 .toSurql 함수가 우선적으로 사용됩니다.

일반 객체의 판정에는 is-plain-obj를 사용합니다. 따라서 일반 객체가 .toSurql이나 .toJSON을 가지고 있지 않고, Symbol.toStringTagSymbol.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}