convex
Version:
Client for the Convex Cloud
44 lines (43 loc) • 1.4 kB
JavaScript
;
import { convexToJson, jsonToConvex } from "@convex-dev/common";
import { setupAuth } from "./authentication_impl.js";
import { setupReader, setupWriter } from "./database_impl.js";
async function invokeMutation(func, argsStr) {
const args = jsonToConvex(JSON.parse(argsStr));
const mutationCtx = {
db: setupWriter(),
auth: setupAuth()
};
const result = await Promise.resolve(func(mutationCtx, ...args));
return JSON.stringify(convexToJson(result === void 0 ? null : result));
}
export const mutationGeneric = (func) => {
const m = func;
if (m.isRegistered) {
throw new Error("Function registered twice " + func);
}
m.isRegistered = true;
m.isMutation = true;
m.invokeMutation = (argsStr) => invokeMutation(func, argsStr);
return m;
};
async function invokeQuery(func, argsStr) {
const args = jsonToConvex(JSON.parse(argsStr));
const queryCtx = {
db: setupReader(),
auth: setupAuth()
};
const result = await Promise.resolve(func(queryCtx, ...args));
return JSON.stringify(convexToJson(result === void 0 ? null : result));
}
export const queryGeneric = (func) => {
const q = func;
if (q.isRegistered) {
throw new Error("Function registered twice " + func);
}
q.isRegistered = true;
q.isQuery = true;
q.invokeQuery = (argsStr) => invokeQuery(func, argsStr);
return q;
};
//# sourceMappingURL=registration_impl.js.map