From 0035aa65002e45d4626b9dfb5df2c9f24747dbe2 Mon Sep 17 00:00:00 2001 From: Henry Date: Sat, 27 Apr 2024 17:02:02 +0100 Subject: [PATCH] feat: switch TRPC router to edge --- bun.lockb | Bin 350813 -> 351190 bytes package.json | 1 + src/pages/api/auth/confirm.ts | 8 +++++-- src/pages/api/trpc/[trpc].ts | 40 +++++++++++++++++----------------- src/server/api/trpc.ts | 11 ++++++---- src/utils/supabase/api.ts | 34 ++++++++++++++++++++++++----- 6 files changed, 63 insertions(+), 31 deletions(-) diff --git a/bun.lockb b/bun.lockb index b59b19af9146602ec31eaceff9c1230062040949..0eb9a9119df8bd8a6870d8368f846cd5fce5845d 100755 GIT binary patch delta 69801 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 Ix!kV*0~N-o5dZ)H delta 69013 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 { - console.error( - `❌ tRPC failed on ${path ?? ""}: ${error.message}`, - ); - } - : undefined, -}); - -export default function handler(req: NextApiRequest, res: NextApiResponse) { - return nextApiHandler(req, res); +export default async function handler(req: NextRequest) { + return fetchRequestHandler({ + endpoint: "/api/trpc", + router: appRouter, + req, + createContext: createTRPCContext, + onError: + env.NODE_ENV === "development" + ? ({ path, error }) => { + console.error( + `❌ tRPC failed on ${path ?? ""}: ${error.message}`, + ); + } + : undefined, + }); } -// export const runtime = "edge"; -// export const preferredRegion = 'lhr1'; -// export const dynamic = 'force-dynamic' +export const runtime = "edge"; +export const preferredRegion = "lhr1"; +export const dynamic = "force-dynamic"; diff --git a/src/server/api/trpc.ts b/src/server/api/trpc.ts index 633ba5bb..ad1f8701 100644 --- a/src/server/api/trpc.ts +++ b/src/server/api/trpc.ts @@ -7,11 +7,11 @@ * need to use are documented accordingly near the end. */ import { initTRPC, TRPCError } from "@trpc/server"; -import { type CreateNextContextOptions } from "@trpc/server/adapters/next"; +import { type FetchCreateContextFnOptions } from "@trpc/server/adapters/fetch"; import superjson from "superjson"; import { ZodError } from "zod"; -import createClient from "~/utils/supabase/api"; +import { createTRPCClient } from "~/utils/supabase/api"; import { type Database } from "~/types/database.types"; import { type SupabaseClient } from "@supabase/supabase-js"; @@ -56,8 +56,11 @@ export const createInnerTRPCContext = (opts: CreateContextOptions) => { * * @see https://trpc.io/docs/context */ -export const createTRPCContext = async (_opts: CreateNextContextOptions) => { - const db = createClient(_opts.req, _opts.res); +export const createTRPCContext = async ({ + req, + resHeaders, +}: FetchCreateContextFnOptions) => { + const db = createTRPCClient(req, resHeaders); const { data: { user }, diff --git a/src/utils/supabase/api.ts b/src/utils/supabase/api.ts index 91b9e9fe..89f60fc3 100644 --- a/src/utils/supabase/api.ts +++ b/src/utils/supabase/api.ts @@ -3,13 +3,12 @@ import { type CookieOptions, serialize, } from "@supabase/ssr"; -import { type NextApiRequest, type NextApiResponse } from "next"; +import { RequestCookies } from "@edge-runtime/cookies"; import { type Database } from "~/types/database.types"; -export default function createClient( - req: NextApiRequest, - res: NextApiResponse, -) { +import { type NextApiRequest, type NextApiResponse } from "next"; + +export function createNextClient(req: NextApiRequest, res: NextApiResponse) { const supabase = createServerClient( process.env.NEXT_PUBLIC_SUPABASE_URL!, process.env.NEXT_PUBLIC_SUPABASE_ANON_KEY!, @@ -32,3 +31,28 @@ export default function createClient( return supabase; } + +export function createTRPCClient(req: Request, resHeaders: Headers) { + const supabase = createServerClient( + process.env.NEXT_PUBLIC_SUPABASE_URL!, + process.env.NEXT_PUBLIC_SUPABASE_ANON_KEY!, + { + cookies: { + get(name: string) { + const cookies = new RequestCookies(req.headers); + return cookies.get(name)?.value; + }, + set(name: string, value: string, options: CookieOptions) { + // eslint-disable-next-line @typescript-eslint/no-unsafe-argument, @typescript-eslint/no-unsafe-call + resHeaders.set("Set-Cookie", serialize(name, value, options)); + }, + remove(name: string, options: CookieOptions) { + // eslint-disable-next-line @typescript-eslint/no-unsafe-argument, @typescript-eslint/no-unsafe-call + resHeaders.set("Set-Cookie", serialize(name, "", options)); + }, + }, + }, + ); + + return supabase; +}