convex
Version:
Client for the Convex Cloud
49 lines (48 loc) • 1.34 kB
JavaScript
;
import {
convexToJson,
jsonToConvex
} from "../../values/index.js";
import { performAsyncSyscall } from "./syscall.js";
import { QueryInitializerImpl } from "./query_impl.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) => {
const syscallJSON = await performAsyncSyscall("insert", {
table,
value: convexToJson(value)
});
const syscallResult = jsonToConvex(syscallJSON);
return syscallResult._id;
},
patch: async (id, value) => {
await performAsyncSyscall("update", {
id: convexToJson(id),
value: convexToJson(value)
});
},
replace: async (id, value) => {
await performAsyncSyscall("replace", {
id: convexToJson(id),
value: convexToJson(value)
});
},
delete: async (id) => {
await performAsyncSyscall("remove", { id: convexToJson(id) });
}
};
}
//# sourceMappingURL=database_impl.js.map