컨텐츠로 건너뛰기

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}