Vercel Edge Config
Last updated
import 'server-only'
import { createClient } from '@vercel/edge-config'
import { VercelEdgeConfigInitDataProvider } from 'hypertune'
import { unstable_noStore as noStore } from 'next/cache'
import { createSource } from '@/generated/hypertune'
const hypertuneSource = createSource({
token: process.env.NEXT_PUBLIC_HYPERTUNE_TOKEN!,
initDataProvider:
process.env.EDGE_CONFIG &&
process.env.EDGE_CONFIG_HYPERTUNE_ITEM_KEY
? new VercelEdgeConfigInitDataProvider({
edgeConfigClient: createClient(
process.env.EDGE_CONFIG
),
itemKey: process.env.EDGE_CONFIG_HYPERTUNE_ITEM_KEY,
})
: undefined,
})
export default async function getHypertune() {
noStore()
await hypertuneSource.initIfNeeded() // Check for flag updates
return hypertuneSource.root({
args: {
context: {
environment: process.env.NODE_ENV,
user: {
id: 'e23cc9a8-0287-40aa-8500-6802df91e56a',
name: 'Example User',
email: 'user@example.com',
},
},
},
})
}