Add Dependencies
bun add graphql-yoga graphql graphql-scalars @pothos/core @pothos/plugin-prisma @pothos/plugin-prisma-utils
Generate Pothos types
Update schema.prisma by adding the following code
generator pothos {
provider = "prisma-pothos-types"
output = "./pothos/generated.d.ts"
}
Add db instance
Create a db.ts file with the following changes
import { PrismaClient } from "@prisma/client";
export const db = new PrismaClient();Add Pothos Builder
import SchemaBuilder from "@pothos/core";
import type PrismaTypes from "../prisma/pothos/generated";
import PrismaPlugin from "@pothos/plugin-prisma";
import PrismaUtilsPlugin from "@pothos/plugin-prisma-utils";
import { db } from "./db";
import { DateTimeResolver } from "graphql-scalars";
interface ISchemaBuilder {
PrismaTypes: PrismaTypes;
Scalars: {
ID: {
Output: number | string;
Input: string;
};
DateTime: {
Output: Date;
Input: Date;
};
};
Context: {
user?: {
id: string;
};
};
}
export const builder = new SchemaBuilder<ISchemaBuilder>({
plugins: [PrismaPlugin, PrismaUtilsPlugin],
prisma: {
client: db,
},
});
builder.queryType();
builder.mutationType();
builder.addScalarType("DateTime", DateTimeResolver, {});