mirror of
https://github.com/vercel/flags.git
synced 2026-09-19 03:49:23 +08:00
5b40b1cc13
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Flags SDK — Hypertune Provider
The Hypertune adapter for the Flags SDK
Setup
The Hypertune provider is available in the @flags-sdk/hypertune module. You can install it with
pnpm i @flags-sdk/hypertune
Provider Instance
You must use the code generation powered by npx hypertune to create an adapter instance.
Use createHypertuneAdapter from @flags-sdk/hypertune as shown below:
/** Generated with `npx hypertune` */
import {
createSource,
vercelFlagDefinitions,
flagFallbacks,
type FlagValues,
type Context,
} from './generated/hypertune';
import { flag } from 'flags/next';
import { createHypertuneAdapter } from '@flags-sdk/hypertune';
import { identify } from './lib/identify';
/** Create the adapter with types generated by your app via `npx hypertune` */
const hypertuneAdapter = createHypertuneAdapter<FlagValues, Context>({
createSource,
flagDefinitions: vercelFlagDefinitions,
flagFallbacks,
identify,
});
/** Use the adapter to generate flag declarations for use in your app's framework */
export const showSummerBannerFlag = flag(
hypertuneAdapter.declarations.summerSale,
);
export const showFreeDeliveryBannerFlag = flag(
hypertuneAdapter.declarations.freeDelivery,
);
export const proceedToCheckoutColorFlag = flag(
hypertuneAdapter.declarations.proceedToCheckout,
);
/**
* NOTE: You can provide specific options for flag overrides
*
* However, using enums in hypertune will provide these automatically.
*/
export const delayFlag = flag({
...hypertuneAdapter.declarations.delay,
options: [
{ value: 0, label: 'No delay' },
{ value: 1_000, label: '1 second' },
{ value: 2_000, label: '2 seconds' },
{ value: 3_000, label: '3 seconds' },
],
});
Required Environment Variables
# Required
NEXT_PUBLIC_HYPERTUNE_TOKEN="123="
# For use with precompute, encrypted flag values, overrides, and the Flags Explorer
FLAGS_SECRET="ReplaceThisWith32RandomBytesBase64UrlString"
# Optional: automatically configure with a VercelEdgeConfigInitDataProvider
EXPERIMENTATION_CONFIG="ecfg_abc"
EXPERIMENTATION_CONFIG_ITEM_KEY="hypertune_xyz"
Documentation
Please check out the Hypertune Adapter reference for more information.