Middleware: withFeatureFlag

Feature-flag middleware.

Examples

Example 1

import { withFeatureFlag } from '@supabase/middleware/feature-flag'

export default {
  fetch: withFeatureFlag(
    {
      name: 'beta-checkout',
      evaluate: (req) => req.headers.get('x-beta') === '1',
    },
    async (_req, ctx) => Response.json({ feature: ctx.featureFlag.name }),
  ),
}

Pluggable providers — use whatever you like in evaluate:

withFeatureFlag({
  name: 'beta-checkout',
  evaluate: async (req) => {
    const userId = req.headers.get('x-user-id') ?? 'anon'
    return await posthog.isFeatureEnabled('beta-checkout', userId)
  },
})