UNPKG

unleash-server

Version:

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

37 lines (36 loc) 1.61 kB
/// <reference types="node" /> import { Knex } from 'knex'; import { EventEmitter } from 'stream'; import { LogProvider } from '../logger'; import { ITag } from '../types/model'; import { IFeatureAndTag, IFeatureTag, IFeatureTagStore } from '../types/stores/feature-tag-store'; interface FeatureTagTable { feature_name: string; tag_type: string; tag_value: string; } declare class FeatureTagStore implements IFeatureTagStore { private db; private logger; private readonly timer; constructor(db: Knex, eventBus: EventEmitter, getLogger: LogProvider); delete({ featureName, tagType, tagValue, }: IFeatureTag): Promise<void>; destroy(): void; exists({ featureName, tagType, tagValue, }: IFeatureTag): Promise<boolean>; get({ featureName, tagType, tagValue, }: IFeatureTag): Promise<IFeatureTag>; getAll(): Promise<IFeatureTag[]>; getAllTagsForFeature(featureName: string): Promise<ITag[]>; tagFeature(featureName: string, tag: ITag): Promise<ITag>; /** * Only gets tags for active feature toggles. */ getAllFeatureTags(): Promise<IFeatureTag[]>; deleteAll(): Promise<void>; importFeatureTags(featureTags: IFeatureTag[]): Promise<IFeatureAndTag[]>; untagFeature(featureName: string, tag: ITag): Promise<void>; featureTagRowToTag(row: FeatureTagTable): ITag; rowToFeatureAndTag(row: FeatureTagTable): IFeatureAndTag; importToRow({ featureName, tagType, tagValue, }: IFeatureTag): FeatureTagTable; featureAndTagToRow(featureName: string, { type, value }: ITag): FeatureTagTable; } export default FeatureTagStore;