UNPKG

unleash-server

Version:

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

50 lines (49 loc) 2.31 kB
/// <reference types="node" /> import { Knex } from 'knex'; import { LogProvider } from '../logger'; import { IEnvironment, IProject, IProjectWithCount } from '../types/model'; import { IProjectHealthUpdate, IProjectInsert, IProjectQuery, IProjectStore } from '../types/stores/project-store'; import EventEmitter from 'events'; import { IFlagResolver } from '../types'; export interface IEnvironmentProjectLink { environmentName: string; projectId: string; } export interface IProjectMembersCount { count: number; project: string; } declare class ProjectStore implements IProjectStore { private db; private logger; private flagResolver; private timer; constructor(db: Knex, eventBus: EventEmitter, getLogger: LogProvider, flagResolver: IFlagResolver); fieldToRow(data: any): IProjectInsert; destroy(): void; exists(id: string): Promise<boolean>; getProjectsWithCounts(query?: IProjectQuery, userId?: number): Promise<IProjectWithCount[]>; mapProjectWithCountRow(row: any): IProjectWithCount; getAll(query?: IProjectQuery): Promise<IProject[]>; get(id: string): Promise<IProject>; hasProject(id: string): Promise<boolean>; updateHealth(healthUpdate: IProjectHealthUpdate): Promise<void>; create(project: IProjectInsert): Promise<IProject>; update(data: any): Promise<void>; importProjects(projects: IProjectInsert[], environments?: IEnvironment[]): Promise<IProject[]>; addDefaultEnvironment(projects: any[]): Promise<void>; deleteAll(): Promise<void>; delete(id: string): Promise<void>; getProjectLinksForEnvironments(environments: string[]): Promise<IEnvironmentProjectLink[]>; deleteEnvironmentForProject(id: string, environment: string): Promise<void>; addEnvironmentToProject(id: string, environment: string): Promise<void>; addEnvironmentToProjects(environment: string, projects: string[]): Promise<void>; getEnvironmentsForProject(id: string): Promise<string[]>; getMembersCount(): Promise<IProjectMembersCount[]>; getProjectsByUser(userId: number): Promise<string[]>; getMembersCountByProject(projectId: string): Promise<number>; count(): Promise<number>; mapLinkRow(row: any): IEnvironmentProjectLink; mapRow(row: any): IProject; } export default ProjectStore;