UNPKG

convex

Version:

Client for the Convex Cloud

57 lines (56 loc) 1.7 kB
"use strict"; import { convexToJson, jsonToConvex } from "../../values/index.js"; import { performAsyncSyscall } from "./syscall.js"; import { QueryInitializerImpl } from "./query_impl.js"; import { validateArg } from "./validate.js"; export function setupReader() { return { get: async (id) => { const args = { id: convexToJson(id) }; const syscallJSON = await performAsyncSyscall("get", args); return jsonToConvex(syscallJSON); }, query: (tableName) => new QueryInitializerImpl(tableName) }; } export function setupWriter() { const reader = setupReader(); return { get: reader.get, query: reader.query, insert: async (table, value) => { validateArg(table, 1, "insert", "table"); validateArg(value, 2, "insert", "value"); const syscallJSON = await performAsyncSyscall("insert", { table, value: convexToJson(value) }); const syscallResult = jsonToConvex(syscallJSON); return syscallResult._id; }, patch: async (id, value) => { validateArg(id, 1, "patch", "id"); validateArg(value, 2, "patch", "value"); await performAsyncSyscall("update", { id: convexToJson(id), value: convexToJson(value) }); }, replace: async (id, value) => { validateArg(id, 1, "replace", "id"); validateArg(value, 2, "replace", "value"); await performAsyncSyscall("replace", { id: convexToJson(id), value: convexToJson(value) }); }, delete: async (id) => { validateArg(id, 1, "delete", "id"); await performAsyncSyscall("remove", { id: convexToJson(id) }); } }; } //# sourceMappingURL=database_impl.js.map