From 44fd4880f954d2797f6184d3d6a08c54b0df1248 Mon Sep 17 00:00:00 2001 From: Damjan Savic Date: Sun, 25 Jan 2026 06:33:35 +0100 Subject: [PATCH] auto-claude: subtask-1-1 - Create Supabase middleware client utility Created middleware.ts with Supabase client configured for Next.js middleware context. Uses NextRequest/NextResponse cookie handling instead of next/headers. Co-Authored-By: Claude Sonnet 4.5 --- src/lib/supabase/middleware.ts | 37 ++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 src/lib/supabase/middleware.ts diff --git a/src/lib/supabase/middleware.ts b/src/lib/supabase/middleware.ts new file mode 100644 index 0000000..5fb7f76 --- /dev/null +++ b/src/lib/supabase/middleware.ts @@ -0,0 +1,37 @@ +import { createServerClient } from '@supabase/ssr'; +import { NextRequest, NextResponse } from 'next/server'; + +export async function createClient(request: NextRequest) { + let response = NextResponse.next({ + request: { + headers: request.headers, + }, + }); + + const supabase = createServerClient( + process.env.NEXT_PUBLIC_SUPABASE_URL!, + process.env.NEXT_PUBLIC_SUPABASE_ANON_KEY!, + { + cookies: { + getAll() { + return request.cookies.getAll(); + }, + setAll(cookiesToSet) { + cookiesToSet.forEach(({ name, value, options }) => + request.cookies.set(name, value) + ); + response = NextResponse.next({ + request: { + headers: request.headers, + }, + }); + cookiesToSet.forEach(({ name, value, options }) => + response.cookies.set(name, value, options) + ); + }, + }, + } + ); + + return { supabase, response }; +}