Feature Flag
Feature flag with variants, targeting rules, and evaluation result.
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;
}