UNPKG

unleash-server

Version:

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

50 lines 2.14 kB
import type { ISegmentStore } from './segment-store-type.js'; import type { IConstraint, IFeatureStrategySegment, ISegment } from '../../types/model.js'; import type { LogProvider } from '../../logger.js'; import type EventEmitter from 'events'; import type { PartialSome } from '../../types/partial.js'; import type { IAuditUser } from '../../types/user.js'; import type { Db } from '../../db/db.js'; import type { IFlagResolver } from '../../types/index.js'; interface ISegmentRow { id: number; name: string; description?: string; segment_project_id?: string; created_by?: string; created_at: Date; used_in_projects?: number; used_in_features?: number; constraints: IConstraint[]; } export default class SegmentStore implements ISegmentStore { private logger; private eventBus; private db; private flagResolver; constructor(db: Db, eventBus: EventEmitter, getLogger: LogProvider, flagResolver: IFlagResolver); count(): Promise<number>; create(segment: PartialSome<ISegment, 'id'>, user: Pick<IAuditUser, 'username'>): Promise<ISegment>; update(id: number, segment: Omit<ISegment, 'id'>): Promise<ISegment>; delete(id: number): Promise<void>; getAll(includeChangeRequestUsageData?: boolean): Promise<ISegment[]>; private getAllWithoutChangeRequestUsageData; private getAllWithChangeRequestUsageData; private mapRowsWithUsageData; private combineUsageData; private mergeCurrentUsageWithCombinedData; 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>; getProjectSegmentCount(projectId: string): Promise<number>; prefixColumns(): string[]; mapRow(row?: ISegmentRow): ISegment; destroy(): void; } export {}; //# sourceMappingURL=segment-store.d.ts.map