Skip to content

infer options of boolean flags#40

Merged
dferber90 merged 2 commits intomainfrom
infer-boolean-for-precompute
Jan 20, 2025
Merged

infer options of boolean flags#40
dferber90 merged 2 commits intomainfrom
infer-boolean-for-precompute

Conversation

@dferber90
Copy link
Collaborator

@dferber90 dferber90 commented Jan 20, 2025

Infer options of boolean feature flags in generatePermutations.

Until now generatePermutations ignored boolean flags which did not explicitly declare their options like these

// flags.ts
import { flag } from '@vercel/flags/next';

export const showBanner = flag({
  key: 'banner',
  decide: () => false,
});

// a group of feature flags to be precomputed
export const marketingFlags = [showBanner] as const;

This PR fixes this by automatically inferring boolean options. The flag above would conceptually be the same as

export const showBanner = flag({
  key: 'banner',
  decide: () => false,
  options: [false, true]
});

Non-boolean flags should always declare all available options.

export const showBanner = flag<string>({
  key: 'banner',
  decide: () => "hello",
  options: ["hello", "hi"]
});

Pass a filter to generatePermutations(group, filter) to skip generation of certain combinations when using flags.

export async function generateStaticParams() {
  // second argument is the filter here
  const codes = await generatePermutations(rootFlags, permutation => permutation.exampleFlag === true);
  return codes.map((code) => ({ code }));
}

See Precomputing to learn more.

@dferber90 dferber90 requested a review from a team January 20, 2025 14:48
@vercel
Copy link
Contributor

vercel bot commented Jan 20, 2025

The latest updates on your projects. Learn more about Vercel for Git ↗︎

Name Status Preview Comments Updated (UTC)
flags-sdk-snippets ✅ Ready (Inspect) Visit Preview 💬 Add feedback Jan 20, 2025 2:50pm
summer-sale ✅ Ready (Inspect) Visit Preview 💬 Add feedback Jan 20, 2025 2:50pm

@dferber90 dferber90 marked this pull request as ready for review January 20, 2025 15:33
@dferber90 dferber90 merged commit 708d5e2 into main Jan 20, 2025
10 checks passed
@dferber90 dferber90 deleted the infer-boolean-for-precompute branch January 20, 2025 15:34
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants