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/concepts/precompute/automatic/[code]/middleware.ts b/examples/snippets/app/concepts/precompute/automatic/[code]/proxy.ts similarity index 82% rename from examples/snippets/app/concepts/precompute/automatic/[code]/middleware.ts rename to examples/snippets/app/concepts/precompute/automatic/[code]/proxy.ts index ca9b2181..1d939af0 100644 --- a/examples/snippets/app/concepts/precompute/automatic/[code]/middleware.ts +++ b/examples/snippets/app/concepts/precompute/automatic/[code]/proxy.ts @@ -2,7 +2,7 @@ import { precompute } from 'flags/next'; import { type NextRequest, NextResponse } from 'next/server'; import { marketingFlags } from './flags'; -export async function automaticPrecomputeMiddleware(request: NextRequest) { +export async function automaticPrecomputeProxy(request: NextRequest) { // precompute the flags const code = await precompute(marketingFlags); diff --git a/examples/snippets/app/concepts/precompute/manual/middleware.ts b/examples/snippets/app/concepts/precompute/manual/proxy.ts similarity index 83% rename from examples/snippets/app/concepts/precompute/manual/middleware.ts rename to examples/snippets/app/concepts/precompute/manual/proxy.ts index f88d0cb0..ff17bce5 100644 --- a/examples/snippets/app/concepts/precompute/manual/middleware.ts +++ b/examples/snippets/app/concepts/precompute/manual/proxy.ts @@ -1,7 +1,7 @@ import { type NextRequest, NextResponse } from 'next/server'; import { manualPrecomputeFlag } from './flags'; -export async function manualPrecomputeMiddleware(request: NextRequest) { +export async function manualPrecomputeProxy(request: NextRequest) { // use the flag const value = await manualPrecomputeFlag(); 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 deleted file mode 100644 index 9f776d33..00000000 --- a/examples/snippets/app/examples/feature-flags-in-edge-middleware/flags.ts +++ /dev/null @@ -1,8 +0,0 @@ -import { flag } from 'flags/next'; - -export const basicEdgeMiddlewareFlag = flag({ - key: 'basic-edge-middleware-flag', - decide({ cookies }) { - return cookies.get('basic-edge-middleware-flag')?.value === '1'; - }, -}); 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 deleted file mode 100644 index f2fd4c52..00000000 --- a/examples/snippets/app/examples/feature-flags-in-edge-middleware/middleware.ts +++ /dev/null @@ -1,14 +0,0 @@ -import { type NextRequest, NextResponse } from 'next/server'; -import { basicEdgeMiddlewareFlag } from './flags'; - -export async function featureFlagsInEdgeMiddleware(request: NextRequest) { - const active = await basicEdgeMiddlewareFlag(); - const variant = active ? 'variant-on' : 'variant-off'; - - return NextResponse.rewrite( - new URL( - `/examples/feature-flags-in-edge-middleware/${variant}`, - request.url, - ), - ); -} diff --git a/examples/snippets/app/examples/feature-flags-in-proxy/flags.ts b/examples/snippets/app/examples/feature-flags-in-proxy/flags.ts new file mode 100644 index 00000000..2583d041 --- /dev/null +++ b/examples/snippets/app/examples/feature-flags-in-proxy/flags.ts @@ -0,0 +1,8 @@ +import { flag } from 'flags/next'; + +export const basicProxyFlag = flag({ + key: 'basic-proxy-flag', + decide({ cookies }) { + 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-proxy/handlers.ts similarity index 53% rename from examples/snippets/app/examples/feature-flags-in-edge-middleware/handlers.ts rename to examples/snippets/app/examples/feature-flags-in-proxy/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-proxy/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-proxy/proxy.ts b/examples/snippets/app/examples/feature-flags-in-proxy/proxy.ts new file mode 100644 index 00000000..f7d5dc97 --- /dev/null +++ b/examples/snippets/app/examples/feature-flags-in-proxy/proxy.ts @@ -0,0 +1,11 @@ +import { type NextRequest, NextResponse } from 'next/server'; +import { basicProxyFlag } from './flags'; + +export async function featureFlagsInProxy(request: NextRequest) { + const active = await basicProxyFlag(); + const variant = active ? 'variant-on' : 'variant-off'; + + return NextResponse.rewrite( + 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-proxy/shared.tsx similarity index 85% rename from examples/snippets/app/examples/feature-flags-in-edge-middleware/shared.tsx rename to examples/snippets/app/examples/feature-flags-in-proxy/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-proxy/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 ( <> - +