UNPKG

unleash-server

Version:

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

62 lines (61 loc) 2.24 kB
/// <reference types="node" /> import { Knex } from 'knex'; import EventEmitter from 'events'; import { LogProvider } from '../logger'; import { FeatureToggle, FeatureToggleDTO, IVariant } from '../types/model'; import { IFeatureToggleStore } from '../types/stores/feature-toggle-store'; export interface FeaturesTable { name: string; description: string; type: string; stale: boolean; project: string; last_seen_at?: Date; created_at?: Date; impression_data: boolean; archived?: boolean; archived_at?: Date; } interface VariantDTO { variants: IVariant[]; } export default class FeatureToggleStore implements IFeatureToggleStore { private db; private logger; private timer; constructor(db: Knex, eventBus: EventEmitter, getLogger: LogProvider); count(query?: { archived?: boolean; project?: string; stale?: boolean; }): Promise<number>; deleteAll(): Promise<void>; destroy(): void; get(name: string): Promise<FeatureToggle>; getAll(query?: { archived?: boolean; project?: string; stale?: boolean; }): Promise<FeatureToggle[]>; /** * Get projectId from feature filtered by name. Used by Rbac middleware * @deprecated * @param name */ getProjectId(name: string): Promise<string>; exists(name: string): Promise<boolean>; setLastSeen(toggleNames: string[]): Promise<void>; static filterByArchived: Knex.QueryCallbackWithArgs; rowToFeature(row: FeaturesTable): FeatureToggle; rowToEnvVariants(variantRows: VariantDTO[]): IVariant[]; dtoToRow(project: string, data: FeatureToggleDTO): FeaturesTable; create(project: string, data: FeatureToggleDTO): Promise<FeatureToggle>; update(project: string, data: FeatureToggleDTO): Promise<FeatureToggle>; archive(name: string): Promise<FeatureToggle>; delete(name: string): Promise<void>; revive(name: string): Promise<FeatureToggle>; getVariants(featureName: string): Promise<IVariant[]>; getVariantsForEnv(featureName: string, environment: string): Promise<IVariant[]>; saveVariants(project: string, featureName: string, newVariants: IVariant[]): Promise<FeatureToggle>; } export {};