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