convex
Version:
Client for the Convex Cloud
52 lines (51 loc) • 1.4 kB
JavaScript
;
import {
convexToJson,
jsonToConvex
} from "@convex-dev/common";
import { performSyscall } from "./syscall.js";
import { QueryInitializerImpl } from "./query_impl.js";
export function setupReader() {
return {
get: (id) => {
const syscallJSON = performSyscall("get", { id: convexToJson(id) });
const syscallResult = jsonToConvex(syscallJSON);
return Promise.resolve(syscallResult);
},
query: (tableName) => new QueryInitializerImpl(tableName)
};
}
export function setupWriter() {
const reader = setupReader();
return {
get: reader.get,
query: reader.query,
insert: (table, value) => {
const syscallJSON = performSyscall("insert", {
table,
value: convexToJson(value)
});
const syscallResult = jsonToConvex(syscallJSON);
return Promise.resolve(syscallResult._id);
},
patch: (id, value) => {
performSyscall("update", {
id: convexToJson(id),
value: convexToJson(value)
});
return Promise.resolve();
},
replace: (id, value) => {
performSyscall("replace", {
id: convexToJson(id),
value: convexToJson(value)
});
return Promise.resolve();
},
delete: (id) => {
performSyscall("remove", { id: convexToJson(id) });
return Promise.resolve();
}
};
}
//# sourceMappingURL=database_impl.js.map