UNPKG

unleash-server

Version:

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

43 lines 1.97 kB
import { calculateProjectHealthRating } from '../../domain/project-health/project-health.js'; export class ProjectStatusService { constructor({ eventStore, projectStore, apiTokenStore, segmentStore, featureTypeStore, featureToggleStore, }, projectLifecycleReadModel, projectStaleFlagsReadModel) { this.eventStore = eventStore; this.projectStore = projectStore; this.apiTokenStore = apiTokenStore; this.segmentStore = segmentStore; this.projectLifecycleSummaryReadModel = projectLifecycleReadModel; this.projectStaleFlagsReadModel = projectStaleFlagsReadModel; this.featureTypeStore = featureTypeStore; this.featureToggleStore = featureToggleStore; } async getProjectStatus(projectId) { const [members, apiTokens, segments, activityCountByDate, currentHealth, lifecycleSummary, staleFlagCount,] = await Promise.all([ this.projectStore.getMembersCountByProject(projectId), this.apiTokenStore.countProjectTokens(projectId), this.segmentStore.getProjectSegmentCount(projectId), this.eventStore.getProjectRecentEventActivity(projectId), calculateProjectHealthRating(this.featureTypeStore, this.featureToggleStore)({ id: projectId }), this.projectLifecycleSummaryReadModel.getProjectLifecycleSummary(projectId), this.projectStaleFlagsReadModel.getStaleFlagCountForProject(projectId), ]); return { resources: { members, apiTokens, segments, }, activityCountByDate, health: { current: currentHealth, }, technicalDebt: { current: 100 - currentHealth, }, lifecycleSummary, staleFlags: { total: staleFlagCount, }, }; } } //# sourceMappingURL=project-status-service.js.map