unleash-server
Version:
Unleash is an enterprise ready feature flag service. It provides different strategies for handling feature flags.
45 lines • 2.2 kB
TypeScript
import { type IAuditUser, type IEnvironmentStore, type IEventStore, type IFeatureEnvironmentStore, type IUnleashConfig } from '../../types/index.js';
import type { FeatureLifecycleView, IFeatureLifecycleStore } from './feature-lifecycle-store-type.js';
import type EventService from '../events/event-service.js';
import type { FeatureLifecycleCompletedSchema } from '../../openapi/index.js';
export declare class FeatureLifecycleService {
private eventStore;
private featureLifecycleStore;
private environmentStore;
private featureEnvironmentStore;
private flagResolver;
private eventBus;
private eventService;
private logger;
constructor({ eventStore, featureLifecycleStore, environmentStore, featureEnvironmentStore, }: {
eventStore: IEventStore;
environmentStore: IEnvironmentStore;
featureLifecycleStore: IFeatureLifecycleStore;
featureEnvironmentStore: IFeatureEnvironmentStore;
}, { eventService, }: {
eventService: EventService;
}, { flagResolver, eventBus, getLogger, }: Pick<IUnleashConfig, 'flagResolver' | 'eventBus' | 'getLogger'>);
listen(): void;
getFeatureLifecycle(feature: string): Promise<FeatureLifecycleView>;
private featureInitialized;
private stageReceivedMetrics;
private recordStagesEntered;
private featuresReceivedMetrics;
/**
* Optimized bulk processing: reduces DB calls from O(4 * environments) to O(3) by batching all data fetches and processing in-memory
*/
private handleBulkMetrics;
private extractUniqueEnvironmentsAndFeatures;
private buildEnvironmentMap;
private buildFeatureEnvironmentMap;
private determineLifecycleStages;
private getFeaturesForEnvironment;
private createPreLiveStages;
private createLiveStages;
private getEnabledFeaturesForEnvironment;
featureCompleted(feature: string, projectId: string, status: FeatureLifecycleCompletedSchema, auditUser: IAuditUser): Promise<void>;
featureUncompleted(feature: string, projectId: string, auditUser: IAuditUser): Promise<void>;
private featureArchived;
private featureRevived;
}
//# sourceMappingURL=feature-lifecycle-service.d.ts.map