UNPKG

unleash-server

Version:

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

129 lines (128 loc) 5.2 kB
import { IUnleashConfig } from '../types/option'; import { FeatureToggle, IEnvironment, IFeatureEnvironment, IFeatureStrategy, IImportData, IImportFile, IProject, ISegment, ITag } from '../types/model'; import { IFeatureTag } from '../types/stores/feature-tag-store'; import { ITagType } from '../types/stores/tag-type-store'; import { IStrategy } from '../types/stores/strategy-store'; import { IUnleashStores } from '../types/stores'; import { PartialSome } from '../types/partial'; export interface IBackupOption { includeFeatureToggles: boolean; includeStrategies: boolean; includeProjects: boolean; includeTags: boolean; } interface IExportIncludeOptions { includeFeatureToggles?: boolean; includeStrategies?: boolean; includeProjects?: boolean; includeTags?: boolean; includeEnvironments?: boolean; includeSegments?: boolean; } export default class StateService { private logger; private toggleStore; private featureStrategiesStore; private strategyStore; private eventStore; private tagStore; private tagTypeStore; private projectStore; private featureEnvironmentStore; private featureTagStore; private environmentStore; private segmentStore; private apiTokenStore; private flagResolver; constructor(stores: IUnleashStores, { getLogger, flagResolver, }: Pick<IUnleashConfig, 'getLogger' | 'flagResolver'>); importFile({ file, dropBeforeImport, userName, keepExisting, }: IImportFile): Promise<void>; replaceGlobalEnvWithDefaultEnv(data: any): void; moveVariantsToFeatureEnvironments(data: any): void; import({ data, userName, dropBeforeImport, keepExisting, }: IImportData): Promise<void>; enabledIn(feature: string, env: any): {}; importFeatureEnvironments({ featureEnvironments }: { featureEnvironments: any; }): Promise<void>; importFeatureStrategies({ featureStrategies, dropBeforeImport, keepExisting, }: { featureStrategies: any; dropBeforeImport: any; keepExisting: any; }): Promise<void>; convertLegacyFeatures({ features, }: { features: any; }): Promise<{ features: any; featureStrategies: any; featureEnvironments: any; }>; importFeatures({ features, userName, dropBeforeImport, keepExisting, featureEnvironments, }: { features: any; userName: any; dropBeforeImport: any; keepExisting: any; featureEnvironments: any; }): Promise<void>; importStrategies({ strategies, userName, dropBeforeImport, keepExisting, }: { strategies: any; userName: any; dropBeforeImport: any; keepExisting: any; }): Promise<void>; importEnvironments({ environments, userName, dropBeforeImport, keepExisting, }: { environments: any; userName: any; dropBeforeImport: any; keepExisting: any; }): Promise<IEnvironment[]>; importProjects({ projects, importedEnvironments, userName, dropBeforeImport, keepExisting, }: { projects: any; importedEnvironments: any; userName: any; dropBeforeImport: any; keepExisting: any; }): Promise<void>; importTagData({ tagTypes, tags, featureTags, userName, dropBeforeImport, keepExisting, }: { tagTypes: any; tags: any; featureTags: any; userName: any; dropBeforeImport: any; keepExisting: any; }): Promise<void>; compareFeatureTags: (old: IFeatureTag, tag: IFeatureTag) => boolean; importFeatureTags(featureTags: IFeatureTag[], keepExisting: boolean, oldFeatureTags: IFeatureTag[], userName: string): Promise<void>; compareTags: (old: ITag, tag: ITag) => boolean; importTags(tags: ITag[], keepExisting: boolean, oldTags: ITag[], userName: string): Promise<void>; importTagTypes(tagTypes: ITagType[], keepExisting: boolean, oldTagTypes: ITagType[], // eslint-disable-line userName: string): Promise<void>; importSegments(segments: PartialSome<ISegment, 'id'>[], userName: string, dropBeforeImport: boolean): Promise<void>; importFeatureStrategySegments(featureStrategySegments: { featureStrategyId: string; segmentId: number; }[]): Promise<void>; export(opts: IExportIncludeOptions): Promise<{ features: FeatureToggle[]; strategies: IStrategy[]; version: number; projects: IProject[]; tagTypes: ITagType[]; tags: ITag[]; featureTags: IFeatureTag[]; featureStrategies: IFeatureStrategy[]; environments: IEnvironment[]; featureEnvironments: IFeatureEnvironment[]; }>; exportV4({ includeFeatureToggles, includeStrategies, includeProjects, includeTags, includeEnvironments, includeSegments, }: IExportIncludeOptions): Promise<{ features: FeatureToggle[]; strategies: IStrategy[]; version: number; projects: IProject[]; tagTypes: ITagType[]; tags: ITag[]; featureTags: IFeatureTag[]; featureStrategies: IFeatureStrategy[]; environments: IEnvironment[]; featureEnvironments: IFeatureEnvironment[]; }>; } export {};