UNPKG

unleash-server

Version:

Unleash is an enterprise ready feature toggles service. It provides different strategies for handling feature toggles.

50 lines (49 loc) 2.8 kB
/// <reference types="node" /> import { Knex } from 'knex'; import EventEmitter from 'events'; import { LogProvider } from '../logger'; import { FeatureToggleWithEnvironment, IFeatureOverview, IFeatureStrategy } from '../types/model'; import { IFeatureStrategiesStore } from '../types/stores/feature-strategies-store'; import { PartialSome } from '../types/partial'; import { IFlagResolver } from '../types/experimental'; import { IFeatureProjectUserParams } from '../routes/admin-api/project/features'; export interface ILoadFeatureToggleWithEnvsParams { featureName: string; archived: boolean; withEnvironmentVariants: boolean; userId?: number; } declare class FeatureStrategiesStore implements IFeatureStrategiesStore { private db; private logger; private readonly timer; private flagResolver; constructor(db: Knex, eventBus: EventEmitter, getLogger: LogProvider, flagResolver: IFlagResolver); delete(key: string): Promise<void>; deleteAll(): Promise<void>; destroy(): void; exists(key: string): Promise<boolean>; get(key: string): Promise<IFeatureStrategy>; createStrategyFeatureEnv(strategyConfig: PartialSome<IFeatureStrategy, 'id' | 'createdAt'>): Promise<IFeatureStrategy>; removeAllStrategiesForFeatureEnv(featureName: string, environment: string): Promise<void>; getAll(): Promise<IFeatureStrategy[]>; getStrategiesForFeatureEnv(projectId: string, featureName: string, environment: string): Promise<IFeatureStrategy[]>; getFeatureToggleWithEnvs(featureName: string, userId?: number, archived?: boolean): Promise<FeatureToggleWithEnvironment>; getFeatureToggleWithVariantEnvs(featureName: string, userId?: number, archived?: boolean): Promise<FeatureToggleWithEnvironment>; loadFeatureToggleWithEnvs({ featureName, archived, withEnvironmentVariants, userId, }: ILoadFeatureToggleWithEnvsParams): Promise<FeatureToggleWithEnvironment>; private addSegmentIdsToStrategy; private static getEnvironment; private addTag; private isNewTag; private static rowToTag; getFeatureOverview({ projectId, archived, userId, }: IFeatureProjectUserParams): Promise<IFeatureOverview[]>; getStrategyById(id: string): Promise<IFeatureStrategy>; updateSortOrder(id: string, sortOrder: number): Promise<void>; updateStrategy(id: string, updates: Partial<IFeatureStrategy>): Promise<IFeatureStrategy>; private static getAdminStrategy; deleteConfigurationsForProjectAndEnvironment(projectId: String, environment: String): Promise<void>; setProjectForStrategiesBelongingToFeature(featureName: string, newProjectId: string): Promise<void>; getStrategiesBySegment(segmentId: number): Promise<IFeatureStrategy[]>; prefixColumns(): string[]; } export default FeatureStrategiesStore;