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
TypeScript
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 {};