UNPKG

unleash-server

Version:

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

49 lines (48 loc) 1.7 kB
/// <reference types="node" /> import { Knex } from 'knex'; import { LogProvider } from '../logger'; import { IFeatureToggleClient, IFeatureToggleQuery } from '../types/model'; import { IFeatureToggleClientStore } from '../types/stores/feature-toggle-client-store'; import EventEmitter from 'events'; import { IFlagResolver } from '../types/experimental'; export interface FeaturesTable { name: string; description: string; type: string; stale: boolean; variants: string; project: string; last_seen_at?: Date; created_at?: Date; } export interface IGetAllFeatures { featureQuery?: IFeatureToggleQuery; archived: boolean; isAdmin: boolean; includeStrategyIds?: boolean; userId?: number; } export interface IGetAdminFeatures { featureQuery?: IFeatureToggleQuery; archived?: boolean; userId?: number; } export default class FeatureToggleClientStore implements IFeatureToggleClientStore { private db; private logger; private inlineSegmentConstraints; private timer; private flagResolver; constructor(db: Knex, eventBus: EventEmitter, getLogger: LogProvider, inlineSegmentConstraints: boolean, flagResolver: IFlagResolver); private getAll; private static rowToStrategy; private static rowToTag; private static removeIdsFromStrategies; private isUnseenStrategyRow; private addTag; private isNewTag; private addSegmentToStrategy; private addSegmentIdsToStrategy; getClient(featureQuery?: IFeatureToggleQuery, includeStrategyIds?: boolean): Promise<IFeatureToggleClient[]>; getAdmin({ featureQuery, userId, archived, }: IGetAdminFeatures): Promise<IFeatureToggleClient[]>; }