unleash-server
Version:
Unleash is an enterprise ready feature flag service. It provides different strategies for handling feature flags.
84 lines • 4.8 kB
TypeScript
import type { IStrategy } from '../../types/stores/strategy-store.js';
import { type IAuditUser, type IFeatureStrategy, type IFeatureStrategySegment, type IUnleashConfig, type IUnleashStores, type IFeatureLinksReadModel } from '../../types/index.js';
import type { ExportQuerySchema, ExportResultSchema, ImportTogglesSchema, ImportTogglesValidateSchema } from '../../openapi/index.js';
import type { IUser } from '../../types/user.js';
import type { IUnleashServices } from '../../services/index.js';
import { type Mode } from './import-permissions-service.js';
import type { IDependentFeaturesReadModel } from '../dependent-features/dependent-features-read-model-type.js';
import type { ISegmentReadModel } from '../segment/segment-read-model-type.js';
export type IImportService = {
validate(dto: ImportTogglesSchema, user: IUser): Promise<ImportTogglesValidateSchema>;
import(dto: ImportTogglesSchema, user: IUser, auditUser: IAuditUser): Promise<void>;
importFromFile(file: string, project: string, environment: string): Promise<void>;
};
export type IExportService = {
export(query: ExportQuerySchema, auditUser: IAuditUser): Promise<ExportResultSchema>;
};
export default class ExportImportService implements IExportService, IImportService {
private logger;
private toggleStore;
private featureStrategiesStore;
private importTogglesStore;
private tagTypeStore;
private featureEnvironmentStore;
private featureTagStore;
private flagResolver;
private featureToggleService;
private contextFieldStore;
private strategyService;
private contextService;
private accessService;
private eventService;
private tagTypeService;
private segmentReadModel;
private featureTagService;
private importPermissionsService;
private dependentFeaturesReadModel;
private dependentFeaturesService;
private featureLinksReadModel;
private featureLinkService;
constructor(stores: Pick<IUnleashStores, 'importTogglesStore' | 'featureStrategiesStore' | 'featureToggleStore' | 'featureEnvironmentStore' | 'tagTypeStore' | 'featureTagStore' | 'contextFieldStore'>, { getLogger, flagResolver, }: Pick<IUnleashConfig, 'getLogger' | 'flagResolver'>, { featureToggleService, strategyService, contextService, accessService, eventService, tagTypeService, featureTagService, dependentFeaturesService, featureLinkService, }: Pick<IUnleashServices, 'featureToggleService' | 'strategyService' | 'contextService' | 'accessService' | 'eventService' | 'tagTypeService' | 'featureTagService' | 'dependentFeaturesService' | 'featureLinkService'>, dependentFeaturesReadModel: IDependentFeaturesReadModel, segmentReadModel: ISegmentReadModel, featureLinksReadModel: IFeatureLinksReadModel);
validate(dto: ImportTogglesSchema, user: IUser, mode?: Mode): Promise<ImportTogglesValidateSchema>;
importVerify(dto: ImportTogglesSchema, user: IUser, mode?: Mode): Promise<void>;
fileImportVerify(dto: ImportTogglesSchema): Promise<void>;
importFeatureData(dto: ImportTogglesSchema, auditUser: IAuditUser): Promise<void>;
import(dto: ImportTogglesSchema, user: IUser, auditUser: IAuditUser): Promise<void>;
importFromFile(file: string, project: string, environment: string): Promise<void>;
private processImport;
importEnvironmentData(dto: ImportTogglesSchema, user: IUser, auditUser: IAuditUser): Promise<void>;
private importLinks;
private importDependencies;
private importToggleStatuses;
private importStrategies;
private deleteStrategies;
private importTags;
private importContextFields;
private importTagTypes;
private importToggleVariants;
private createOrUpdateToggles;
private getUnsupportedSegments;
private getMissingDependencies;
private verifySegments;
private verifyDependencies;
private verifyContextFields;
private verifyFeatures;
private cleanData;
private remapSegments;
removeArchivedFeatures(dto: ImportTogglesSchema): Promise<ImportTogglesSchema>;
private verifyStrategies;
private getInvalidFeatureNames;
private getFeatureLimit;
private getUnsupportedStrategies;
private getUsedCustomStrategies;
isCustomStrategy: (supportedStrategies: IStrategy[]) => ((x: string) => boolean);
private getUnsupportedContextFields;
private getArchivedFeatures;
private getOtherProjectFeatures;
private getExistingProjectFeatures;
private getDuplicateFeatures;
private getNewTagTypes;
private getNewContextFields;
export(query: ExportQuerySchema, auditUser: IAuditUser): Promise<ExportResultSchema>;
addSegmentsToStrategies(featureStrategies: IFeatureStrategy[], strategySegments: IFeatureStrategySegment[]): void;
}
//# sourceMappingURL=export-import-service.d.ts.map