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
TypeScript
/// <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[]>;
}