unleash-server
Version:
Unleash is an enterprise ready feature flag service. It provides different strategies for handling feature flags.
45 lines • 2.55 kB
TypeScript
import memoizee from 'memoizee';
import { type IAddonProviders } from '../addons/index.js';
import type { IFeatureToggleStore } from '../features/feature-toggle/types/feature-toggle-store-type.js';
import type { Logger } from '../logger.js';
import type TagTypeService from '../features/tag-type/tag-type-service.js';
import type { IAddon, IAddonDto, IAddonStore } from '../types/stores/addon-store.js';
import { type IAuditUser, type IUnleashConfig, type IUnleashStores } from '../types/index.js';
import type { IAddonDefinition } from '../types/model.js';
import type EventService from '../features/events/event-service.js';
import type { IntegrationEventsService } from '../features/integration-events/integration-events-service.js';
import { type IEvent } from '../events/index.js';
interface ISensitiveParams {
[key: string]: string[];
}
export default class AddonService {
addonStore: IAddonStore;
featureToggleStore: IFeatureToggleStore;
logger: Logger;
tagTypeService: TagTypeService;
eventService: EventService;
addonProviders: IAddonProviders;
sensitiveParams: ISensitiveParams;
fetchAddonConfigs: (() => Promise<IAddon[]>) & memoizee.Memoized<() => Promise<IAddon[]>>;
private eventHandlers;
constructor({ addonStore, featureToggleStore, }: Pick<IUnleashStores, 'addonStore' | 'featureToggleStore'>, { getLogger, server, flagResolver, eventBus, }: Pick<IUnleashConfig, 'getLogger' | 'server' | 'flagResolver' | 'eventBus'>, tagTypeService: TagTypeService, eventService: EventService, integrationEventsService: IntegrationEventsService, addons?: IAddonProviders);
loadSensitiveParams(addonProviders: IAddonProviders): ISensitiveParams;
registerEventHandler(): void;
handleEvent(eventName: string): (event: IEvent) => Promise<void>;
getAddons(): Promise<IAddon[]>;
filterSensitiveFields(addonConfig: IAddon): IAddon;
getAddon(id: number): Promise<IAddon>;
getProviderDefinitions(): IAddonDefinition[];
addTagTypes(providerName: string): Promise<void>;
createAddon(data: IAddonDto, auditUser: IAuditUser): Promise<IAddon>;
updateAddon(id: number, data: IAddonDto, auditUser: IAuditUser): Promise<IAddon>;
removeAddon(id: number, auditUser: IAuditUser): Promise<void>;
validateKnownProvider(config: Partial<IAddonDto>): Promise<boolean>;
validateRequiredParameters({ provider, parameters, }: {
provider: any;
parameters: any;
}): Promise<boolean>;
destroy(): void;
}
export {};
//# sourceMappingURL=addon-service.d.ts.map