import { neon, neonConfig } from "@neondatabase/serverless"; import { drizzle } from "drizzle-orm/neon-http"; import * as schema from "./schema"; // SQL goes out over fetch, and during a build Next.js stores every fetch made // while prerendering in its Data Cache, POSTs included, so a later build could // reuse an older build's query results. Queries use the unpatched fetch. // Resolved per call because Next patches fetch after this module loads. type PatchedFetch = typeof fetch & { _nextOriginalFetch?: typeof fetch }; neonConfig.fetchFunction = (input: RequestInfo | URL, init?: RequestInit) => ((globalThis.fetch as PatchedFetch)._nextOriginalFetch ?? globalThis.fetch)( input, init, ); export const db = drizzle(neon(process.env.NEON_URL ?? ""), { schema });