UNPKG

@featurevisor/sdk

Version:

Featurevisor SDK for Node.js and the browser

60 lines (59 loc) 2.04 kB
import { Feature, FeatureKey, Context, BucketKey, BucketValue, RuleKey, Traffic, Force, Required, OverrideFeature, Variation, VariationValue, VariableKey, VariableValue, VariableSchema, StickyFeatures, InitialFeatures } from "@featurevisor/types"; import { Logger } from "./logger"; import { DatafileReader } from "./datafileReader"; import { ConfigureBucketKey, ConfigureBucketValue } from "./bucket"; import type { Statuses, InterceptContext } from "./instance"; export declare enum EvaluationReason { NOT_FOUND = "not_found", NO_VARIATIONS = "no_variations", NO_MATCH = "no_match", DISABLED = "disabled", REQUIRED = "required", OUT_OF_RANGE = "out_of_range", FORCED = "forced", INITIAL = "initial", STICKY = "sticky", RULE = "rule", ALLOCATED = "allocated", DEFAULTED = "defaulted", OVERRIDE = "override", ERROR = "error" } type EvaluationType = "flag" | "variation" | "variable"; export interface Evaluation { featureKey: FeatureKey; reason: EvaluationReason; bucketKey?: BucketKey; bucketValue?: BucketValue; ruleKey?: RuleKey; error?: Error; enabled?: boolean; traffic?: Traffic; forceIndex?: number; force?: Force; required?: Required[]; sticky?: OverrideFeature; initial?: OverrideFeature; variation?: Variation; variationValue?: VariationValue; variableKey?: VariableKey; variableValue?: VariableValue; variableSchema?: VariableSchema; } export interface EvaluateOptions { type: EvaluationType; featureKey: FeatureKey | Feature; variableKey?: VariableKey; context: Context; logger: Logger; datafileReader: DatafileReader; statuses?: Statuses; interceptContext?: InterceptContext; stickyFeatures?: StickyFeatures; initialFeatures?: InitialFeatures; bucketKeySeparator?: string; configureBucketKey?: ConfigureBucketKey; configureBucketValue?: ConfigureBucketValue; } export declare function evaluate(options: EvaluateOptions): Evaluation; export {};