From 62b69b5cd2059b02e1e8ece750dec63c3938a75c Mon Sep 17 00:00:00 2001 From: Dominik Ferber Date: Fri, 5 Dec 2025 11:29:55 +0200 Subject: [PATCH 1/6] adjust proxy export --- tests/next-16/proxy.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/next-16/proxy.ts b/tests/next-16/proxy.ts index 408d0a37..593d9bd1 100644 --- a/tests/next-16/proxy.ts +++ b/tests/next-16/proxy.ts @@ -6,7 +6,7 @@ export const config = { matcher: ['/', '/pages-router', '/app-router-static', '/pages-router-static'], }; -export default async function middleware(request: NextRequest) { +export default async function proxy(request: NextRequest) { if ( request.nextUrl.pathname === '/' || request.nextUrl.pathname === '/pages-router' From 34c5ba2e4dd3290eac84848c91a9823f226c6986 Mon Sep 17 00:00:00 2001 From: Dominik Ferber Date: Fri, 5 Dec 2025 11:32:22 +0200 Subject: [PATCH 2/6] rename Edge Middleware to Proxy --- examples/snippets/app/.well-known/vercel/flags/route.ts | 4 ++-- .../examples/feature-flags-in-edge-middleware/flags.ts | 6 +++--- .../feature-flags-in-edge-middleware/handlers.ts | 6 +++--- .../feature-flags-in-edge-middleware/middleware.ts | 9 +++------ .../examples/feature-flags-in-edge-middleware/shared.tsx | 4 ++-- examples/snippets/app/page.tsx | 6 +++--- examples/snippets/proxy.ts | 8 +++----- packages/flags/README.md | 4 ++-- packages/flags/src/sveltekit/env.ts | 2 +- packages/flags/src/sveltekit/index.ts | 2 +- packages/flags/src/sveltekit/types.ts | 2 +- 11 files changed, 24 insertions(+), 29 deletions(-) diff --git a/examples/snippets/app/.well-known/vercel/flags/route.ts b/examples/snippets/app/.well-known/vercel/flags/route.ts index b6a4d09a..c623ab46 100644 --- a/examples/snippets/app/.well-known/vercel/flags/route.ts +++ b/examples/snippets/app/.well-known/vercel/flags/route.ts @@ -6,7 +6,7 @@ import * as adapterFlags from '../../../concepts/adapters/flags'; import * as basicIdentifyFlags from '../../../concepts/identify/basic/flags'; import * as fullIdentifyFlags from '../../../concepts/identify/full/flags'; import * as dashboardFlags from '../../../examples/dashboard-pages/flags'; -import * as basicEdgeMiddlewareFlags from '../../../examples/feature-flags-in-edge-middleware/flags'; +import * as basicProxyFlags from '../../../examples/feature-flags-in-proxy/flags'; // The @/ import is not working in the ".well-known" folder due do the dot in the path. // We need to use relative paths instead. This seems like a TypeScript issue. import * as marketingFlags from '../../../examples/marketing-pages/flags'; @@ -21,7 +21,7 @@ export async function GET(request: NextRequest) { ...dashboardFlags, ...topLevelFlags, ...adapterFlags, - ...basicEdgeMiddlewareFlags, + ...basicProxyFlags, ...basicIdentifyFlags, ...fullIdentifyFlags, }), diff --git a/examples/snippets/app/examples/feature-flags-in-edge-middleware/flags.ts b/examples/snippets/app/examples/feature-flags-in-edge-middleware/flags.ts index 9f776d33..2583d041 100644 --- a/examples/snippets/app/examples/feature-flags-in-edge-middleware/flags.ts +++ b/examples/snippets/app/examples/feature-flags-in-edge-middleware/flags.ts @@ -1,8 +1,8 @@ import { flag } from 'flags/next'; -export const basicEdgeMiddlewareFlag = flag({ - key: 'basic-edge-middleware-flag', +export const basicProxyFlag = flag({ + key: 'basic-proxy-flag', decide({ cookies }) { - return cookies.get('basic-edge-middleware-flag')?.value === '1'; + return cookies.get('basic-proxy-flag')?.value === '1'; }, }); diff --git a/examples/snippets/app/examples/feature-flags-in-edge-middleware/handlers.ts b/examples/snippets/app/examples/feature-flags-in-edge-middleware/handlers.ts index 3d649a20..ca8c5b2c 100644 --- a/examples/snippets/app/examples/feature-flags-in-edge-middleware/handlers.ts +++ b/examples/snippets/app/examples/feature-flags-in-edge-middleware/handlers.ts @@ -1,17 +1,17 @@ 'use client'; export function actAsFlaggedInUser() { - document.cookie = 'basic-edge-middleware-flag=1; Path=/'; + document.cookie = 'basic-proxy-flag=1; Path=/'; window.location.reload(); } export function actAsFlaggedOutUser() { - document.cookie = 'basic-edge-middleware-flag=0; Path=/'; + document.cookie = 'basic-proxy-flag=0; Path=/'; window.location.reload(); } export function clear() { document.cookie = - 'basic-edge-middleware-flag=; Path=/; Expires=Thu, 01 Jan 1970 00:00:00 GMT'; + 'basic-proxy-flag=; Path=/; Expires=Thu, 01 Jan 1970 00:00:00 GMT'; window.location.reload(); } diff --git a/examples/snippets/app/examples/feature-flags-in-edge-middleware/middleware.ts b/examples/snippets/app/examples/feature-flags-in-edge-middleware/middleware.ts index f2fd4c52..692d4ce3 100644 --- a/examples/snippets/app/examples/feature-flags-in-edge-middleware/middleware.ts +++ b/examples/snippets/app/examples/feature-flags-in-edge-middleware/middleware.ts @@ -1,14 +1,11 @@ import { type NextRequest, NextResponse } from 'next/server'; -import { basicEdgeMiddlewareFlag } from './flags'; +import { basicProxyFlag } from './flags'; export async function featureFlagsInEdgeMiddleware(request: NextRequest) { - const active = await basicEdgeMiddlewareFlag(); + const active = await basicProxyFlag(); const variant = active ? 'variant-on' : 'variant-off'; return NextResponse.rewrite( - new URL( - `/examples/feature-flags-in-edge-middleware/${variant}`, - request.url, - ), + new URL(`/examples/feature-flags-in-proxy/${variant}`, request.url), ); } diff --git a/examples/snippets/app/examples/feature-flags-in-edge-middleware/shared.tsx b/examples/snippets/app/examples/feature-flags-in-edge-middleware/shared.tsx index 7fd4c0dc..1a8dfd27 100644 --- a/examples/snippets/app/examples/feature-flags-in-edge-middleware/shared.tsx +++ b/examples/snippets/app/examples/feature-flags-in-edge-middleware/shared.tsx @@ -1,6 +1,6 @@ import { DemoFlag } from '@/components/demo-flag'; import { Button } from '@/components/ui/button'; -import { basicEdgeMiddlewareFlag } from './flags'; +import { basicProxyFlag } from './flags'; import { actAsFlaggedInUser, actAsFlaggedOutUser, clear } from './handlers'; // This component does not actually use the feature flag, but the @@ -8,7 +8,7 @@ import { actAsFlaggedInUser, actAsFlaggedOutUser, clear } from './handlers'; export function Shared({ variant }: { variant: 'on' | 'off' }) { return ( <> - +