MCPcopy Create free account
hub / github.com/UsefulSoftwareCo/executor / fromConvex

Function fromConvex

packages/core/fumadb/src/convex/query.ts:15–129  ·  view source on GitHub ↗
(schema: AnySchema, options: ConvexOptions)

Source from the content-addressed store, hash-verified

13
14// TODO: join, sort
15export function fromConvex(schema: AnySchema, options: ConvexOptions) {
16 const { secret, client, generatedAPI } = options;
17 const api = generatedAPI as (typeof GeneratedAPI.fullApi)["test"];
18
19 const orm = createTransaction({
20 tables: schema.tables,
21 async count(table, v) {
22 return (await client.query(api.queryHandler, {
23 tableName: table.ormName,
24 query: {
25 type: "count",
26 where: v.where ? serializeWhere(v.where) : undefined,
27 },
28 secret,
29 })) as number;
30 },
31 async findFirst(table, v) {
32 const result = await client.query(api.queryHandler, {
33 tableName: table.ormName,
34 query: {
35 type: "find",
36 select: serializeSelect(table, v.select),
37 where: v.where ? serializeWhere(v.where) : undefined,
38 limit: 1,
39 },
40 secret,
41 });
42
43 if (Array.isArray(result) && result.length > 0)
44 return result[0] as Record<string, unknown>;
45 return null;
46 },
47 async findMany(table, v) {
48 const result = await client.query(api.queryHandler, {
49 tableName: table.ormName,
50 query: {
51 type: "find",
52 select: serializeSelect(table, v.select),
53 where: v.where ? serializeWhere(v.where) : undefined,
54 limit: v.limit,
55 offset: v.offset,
56 },
57 secret,
58 });
59
60 if (Array.isArray(result)) return result as Record<string, unknown>[];
61 return [];
62 },
63 async updateMany(table, v) {
64 await client.mutation(api.mutationHandler, {
65 tableName: table.ormName,
66 action: {
67 type: "update",
68 set: v.set,
69 where: v.where ? serializeWhere(v.where) : undefined,
70 },
71 secret,
72 });

Callers

nothing calls this directly

Calls 2

createTransactionFunction · 0.90
toORMFunction · 0.90

Tested by

no test coverage detected