Feature Flag

Feature flag with variants, targeting rules, and evaluation result.

Report an issue
infrastructure

Install

$ npx shadcn@latest add @open-types/feature-flag

Source

export type FeatureFlagOperator =
  | "eq"
  | "neq"
  | "in"
  | "nin"
  | "gt"
  | "lt"
  | "gte"
  | "lte"
  | "contains";

export interface FeatureFlagRule {
  attribute: string;
  operator: FeatureFlagOperator;
  value: unknown;
}

export interface FeatureFlagVariant {
  key: string;
  value: unknown;
  weight?: number;
}

export interface FeatureFlag {
  key: string;
  enabled: boolean;
  description?: string;
  variants?: FeatureFlagVariant[];
  rules?: FeatureFlagRule[];
}

export interface FeatureFlagEvaluation {
  key: string;
  enabled: boolean;
  variant?: string;
  reason?: string;
}
export type FeatureFlagOperator =
  | "eq"
  | "neq"
  | "in"
  | "nin"
  | "gt"
  | "lt"
  | "gte"
  | "lte"
  | "contains";

export interface FeatureFlagRule {
  attribute: string;
  operator: FeatureFlagOperator;
  value: unknown;
}

export interface FeatureFlagVariant {
  key: string;
  value: unknown;
  weight?: number;
}

export interface FeatureFlag {
  key: string;
  enabled: boolean;
  description?: string;
  variants?: FeatureFlagVariant[];
  rules?: FeatureFlagRule[];
}

export interface FeatureFlagEvaluation {
  key: string;
  enabled: boolean;
  variant?: string;
  reason?: string;
}