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, {});