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
TypeScript
/// <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;