unleash-server
Version:
Unleash is an enterprise ready feature flag service. It provides different strategies for handling feature flags.
64 lines • 3.44 kB
TypeScript
import type { IEnvironment, IProject, IProjectApplications, IProjectLinkTemplate, IProjectUpdate, IUnleashConfig, ProjectMode } from '../../types/index.js';
import type { IProjectHealthUpdate, IProjectInsert, IProjectQuery, IProjectSettings, IProjectEnterpriseSettingsUpdate, IProjectStore, ProjectEnvironment, IProjectApplicationsSearchParams } from '../../features/project/project-store-type.js';
import type EventEmitter from 'events';
import type { Db } from '../../db/db.js';
import type { CreateFeatureStrategySchema } from '../../openapi/index.js';
export interface IEnvironmentProjectLink {
environmentName: string;
projectId: string;
}
export interface ProjectModeCount {
mode: ProjectMode;
count: number;
}
export interface IProjectMembersCount {
count: number;
project: string;
}
declare class ProjectStore implements IProjectStore {
private db;
private logger;
private flagResolver;
private timer;
private isOss;
constructor(db: Db, eventBus: EventEmitter, { getLogger, flagResolver, isOss, }: Pick<IUnleashConfig, 'getLogger' | 'flagResolver' | 'isOss'>);
fieldToRow(data: any): Omit<IProjectInsert, 'mode'>;
destroy(): void;
isFeatureLimitReached(id: string): Promise<boolean>;
getProjectLinkTemplates(id: string): Promise<IProjectLinkTemplate[]>;
getAll(query?: IProjectQuery): Promise<IProject[]>;
get(id: string): Promise<IProject>;
exists(id: string): Promise<boolean>;
hasProject(id: string): Promise<boolean>;
hasActiveProject(id: string): Promise<boolean>;
updateHealth(healthUpdate: IProjectHealthUpdate): Promise<void>;
create(project: IProjectInsert & IProjectSettings): Promise<IProject>;
private hasProjectSettings;
update(data: IProjectUpdate): Promise<void>;
updateProjectEnterpriseSettings(data: IProjectEnterpriseSettingsUpdate): Promise<void>;
importProjects(projects: IProjectInsert[], environments?: IEnvironment[]): Promise<IProject[]>;
addDefaultEnvironment(projects: any[]): Promise<void>;
deleteAll(): Promise<void>;
delete(id: string): Promise<void>;
archive(id: string): Promise<void>;
revive(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<ProjectEnvironment[]>;
getMembersCountByProject(projectId: string): Promise<number>;
getMembersCountByProjectAfterDate(projectId: string, date: string): Promise<number>;
getApplicationsByProject(params: IProjectApplicationsSearchParams): Promise<IProjectApplications>;
getDefaultStrategy(projectId: string, environment: string): Promise<CreateFeatureStrategySchema | undefined>;
updateDefaultStrategy(projectId: string, environment: string, strategy: CreateFeatureStrategySchema): Promise<CreateFeatureStrategySchema>;
count(): Promise<number>;
getProjectModeCounts(): Promise<ProjectModeCount[]>;
private mapProjectModeCount;
private mapLinkRow;
private mapRow;
private mapProjectEnvironmentRow;
private getAggregatedApplicationsData;
}
export default ProjectStore;
//# sourceMappingURL=project-store.d.ts.map