unleash-server
Version:
Unleash is an enterprise ready feature toggles service. It provides different strategies for handling feature toggles.
41 lines (40 loc) • 1.6 kB
TypeScript
/// <reference types="node" />
import { ISegmentStore } from '../types/stores/segment-store';
import { IConstraint, IFeatureStrategySegment, ISegment } from '../types/model';
import { LogProvider } from '../logger';
import { Knex } from 'knex';
import EventEmitter from 'events';
import { PartialSome } from '../types/partial';
import User from '../types/user';
interface ISegmentRow {
id: number;
name: string;
description?: string;
created_by?: string;
created_at?: Date;
constraints: IConstraint[];
}
export default class SegmentStore implements ISegmentStore {
private logger;
private eventBus;
private db;
constructor(db: Knex, eventBus: EventEmitter, getLogger: LogProvider);
count(): Promise<number>;
create(segment: PartialSome<ISegment, 'id'>, user: Partial<Pick<User, 'username' | 'email'>>): Promise<ISegment>;
update(id: number, segment: Omit<ISegment, 'id'>): Promise<ISegment>;
delete(id: number): Promise<void>;
getAll(): Promise<ISegment[]>;
getActive(): Promise<ISegment[]>;
getByStrategy(strategyId: string): Promise<ISegment[]>;
deleteAll(): Promise<void>;
exists(id: number): Promise<boolean>;
get(id: number): Promise<ISegment>;
addToStrategy(id: number, strategyId: string): Promise<void>;
removeFromStrategy(id: number, strategyId: string): Promise<void>;
getAllFeatureStrategySegments(): Promise<IFeatureStrategySegment[]>;
existsByName(name: string): Promise<boolean>;
prefixColumns(): string[];
mapRow(row?: ISegmentRow): ISegment;
destroy(): void;
}
export {};