unleash-server
Version:
Unleash is an enterprise ready feature flag service. It provides different strategies for handling feature flags.
42 lines • 2.11 kB
TypeScript
import type { LogProvider } from '../logger.js';
import type { ITag } from '../tags/index.js';
import type EventEmitter from 'events';
import type { IFeatureAndTag, IFeatureTag, IFeatureTagInsert, IFeatureTagStore } from '../types/stores/feature-tag-store.js';
import type { Db } from './db.js';
interface FeatureTagTable {
feature_name: string;
tag_type: string;
tag_value: string;
created_by_user_id?: number;
}
declare class FeatureTagStore implements IFeatureTagStore {
private db;
private logger;
private readonly timer;
constructor(db: Db, 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[]>;
getAllFeaturesForTag(tagValue: string): Promise<string[]>;
featureExists(featureName: string): Promise<boolean>;
getAllByFeatures(features: string[]): Promise<IFeatureTag[]>;
tagFeature(featureName: string, tag: ITag, createdByUserId: number): Promise<ITag>;
untagFeatures(featureTags: IFeatureTag[]): Promise<void>;
/**
* Only gets tags for active feature flags.
*/
getAllFeatureTags(): Promise<IFeatureTag[]>;
deleteAll(): Promise<void>;
tagFeatures(featureTags: IFeatureTagInsert[]): Promise<IFeatureAndTag[]>;
untagFeature(featureName: string, tag: ITag): Promise<void>;
featureTagRowToTag(row: FeatureTagTable): ITag;
rowToFeatureAndTag(row: FeatureTagTable): IFeatureAndTag;
featureTagToRow({ featureName, tagType, tagValue, createdByUserId, }: IFeatureTagInsert): FeatureTagTable;
featureTagArray({ featureName, tagType, tagValue }: IFeatureTag): string[];
featureAndTagToRow(featureName: string, { type, value }: ITag, createdByUserId: number): FeatureTagTable;
}
export default FeatureTagStore;
//# sourceMappingURL=feature-tag-store.d.ts.map