Constimport { 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)
},
})
Placed after an auth entry, evaluate reads the caller it verified:
pipeline(
[
withUser(),
withFeatureFlag({
name: 'beta-checkout',
evaluate: (_req, ctx) => {
const { user } = ctx as { user?: { id: string } }
return user !== undefined && betaTesters.has(user.id)
},
}),
],
handler,
)
Feature-flag middleware.