meshql-prisma (@meshql/prisma)
Prisma catch-all resolver for MeshQL. Maps JoinPlan to nested Prisma select, where, and list args. Register with { preshaped: true } because Prisma returns nested JSON directly.
v0.7.0+ can also build your MeshQL schema from schema.prisma via schemaFromPrisma.
Install
Section titled “Install”npm install meshql-prisma meshql-core @prisma/client# ornpx jsr add @meshql/prisma @meshql/corenpm i @prisma/clientPublished on npm as meshql-prisma and JSR as @meshql/prisma.
Requires @meshql/core 0.7.0+ (extendSchema + schema inference support).
Example — infer schema from Prisma
Section titled “Example — infer schema from Prisma”import { PrismaClient } from "@prisma/client";import { createMesh, extendSchema } from "@meshql/core";import { schemaFromPrisma, withPrisma } from "@meshql/prisma";
const prisma = new PrismaClient();const schema = extendSchema(await schemaFromPrisma("./prisma/schema.prisma"), { // optional: hide fields clients shouldn't select entities: { user: { fields: ["id", "name"] } },});const mesh = createMesh(schema);
withPrisma(mesh, prisma, { schema });Example — hand-written schema
Section titled “Example — hand-written schema”import { PrismaClient } from "@prisma/client";import { createMesh, type MeshSchema } from "@meshql/core";import { withPrisma } from "@meshql/prisma";
const prisma = new PrismaClient();const schema: MeshSchema = { /* entities + joins */ };const mesh = createMesh(schema);
withPrisma(mesh, prisma, { schema });Equivalent to:
import { prismaResolver } from "@meshql/prisma";
mesh.resolve("*", prismaResolver(prisma, { schema }), { preshaped: true });- MeshQL entity
user→prisma.user - Point reads use
findUnique; lists usefindManywithplan.listfilters
Create PrismaClient once per process — see Database connections.
Runnable demo: examples/express-prisma.
Exports
Section titled “Exports”schemaFromPrisma(path)/schemaFromPrismaSource(source)— inferMeshSchemawithPrisma(mesh, client, { schema })— register catch-all resolverprismaResolver(client, { schema })— resolver functionbuildPrismaSelect,buildPrismaWhere,buildPrismaListArgs— lower-level mapping helpers
See also ORM adapters.