flagsmith-nodejs
Version:
Flagsmith lets you manage features flags and remote config across web, mobile and server side applications. Deliver true Continuous Integration. Get builds out faster. Control who has access to new features.
83 lines (82 loc) • 2.68 kB
TypeScript
import { FeatureStateModel } from '../flagsmith-engine/features/models.js';
import { AnalyticsProcessor } from './analytics.js';
type FlagValue = string | number | boolean | undefined;
/**
* A Flagsmith feature. It has an enabled/disabled state, and an optional {@link FlagValue}.
*/
export declare class BaseFlag {
/**
* Indicates whether this feature is enabled.
*/
enabled: boolean;
/**
* An optional {@link FlagValue} for this feature.
*/
value: FlagValue;
/**
* If true, the state for this feature was determined by a default flag handler. See {@link DefaultFlag}.
*/
isDefault: boolean;
constructor(value: FlagValue, enabled: boolean, isDefault: boolean);
}
/**
* A {@link BaseFlag} returned by a default flag handler when flag evaluation fails.
* @see FlagsmithConfig#defaultFlagHandler
*/
export declare class DefaultFlag extends BaseFlag {
constructor(value: FlagValue, enabled: boolean);
}
/**
* A Flagsmith feature retrieved from a successful flag evaluation.
*/
export declare class Flag extends BaseFlag {
/**
* An identifier for this feature, unique in a single Flagsmith installation.
*/
featureId: number;
/**
* The programmatic name for this feature, unique per Flagsmith project.
*/
featureName: string;
constructor(params: {
value: FlagValue;
enabled: boolean;
isDefault?: boolean;
featureId: number;
featureName: string;
});
static fromFeatureStateModel(fsm: FeatureStateModel, identityId: number | string | undefined): Flag;
static fromAPIFlag(flagData: any): Flag;
}
export declare class Flags {
flags: {
[key: string]: Flag;
};
defaultFlagHandler?: (featureName: string) => DefaultFlag;
analyticsProcessor?: AnalyticsProcessor;
constructor(data: {
flags: {
[key: string]: Flag;
};
defaultFlagHandler?: (v: string) => DefaultFlag;
analyticsProcessor?: AnalyticsProcessor;
});
static fromFeatureStateModels(data: {
featureStates: FeatureStateModel[];
analyticsProcessor?: AnalyticsProcessor;
defaultFlagHandler?: (f: string) => DefaultFlag;
identityID?: string | number;
}): Flags;
static fromAPIFlags(data: {
apiFlags: {
[key: string]: any;
}[];
analyticsProcessor?: AnalyticsProcessor;
defaultFlagHandler?: (v: string) => DefaultFlag;
}): Flags;
allFlags(): Flag[];
getFlag(featureName: string): BaseFlag;
getFeatureValue(featureName: string): FlagValue;
isFeatureEnabled(featureName: string): boolean;
}
export {};