unleash-server
Version:
Unleash is an enterprise ready feature flag service. It provides different strategies for handling feature flags.
45 lines • 2.12 kB
TypeScript
import type { Response } from 'express';
import Controller from '../../routes/controller.js';
import type { IUnleashConfig } from '../../types/index.js';
import type { IFeatureToggleQuery } from '../../types/model.js';
import type { IAuthRequest } from '../../routes/unleash-types.js';
import type { ClientFeaturesQuerySchema } from '../../openapi/spec/client-features-query-schema.js';
import { type ClientFeatureSchema } from '../../openapi/spec/client-feature-schema.js';
import { type ClientFeaturesSchema } from '../../openapi/spec/client-features-schema.js';
import type { IUnleashServices } from '../../services/index.js';
export interface QueryOverride {
project?: string[];
environment?: string;
}
interface IMeta {
revisionId: number;
etag: string;
queryHash: string;
}
export default class FeatureController extends Controller {
private readonly logger;
private clientFeatureToggleService;
private clientSpecService;
private openApiService;
private configurationRevisionService;
private featureToggleService;
private flagResolver;
private eventBus;
private clientFeaturesCacheMap;
private featuresAndSegments;
constructor({ clientFeatureToggleService, clientSpecService, openApiService, configurationRevisionService, featureToggleService, }: Pick<IUnleashServices, 'clientFeatureToggleService' | 'clientSpecService' | 'openApiService' | 'configurationRevisionService' | 'featureToggleService'>, config: IUnleashConfig);
private resolveFeaturesAndSegments;
private resolveQuery;
private paramToArray;
private prepQuery;
getAll(req: IAuthRequest, res: Response<ClientFeaturesSchema>): Promise<void>;
calculateMeta(query: IFeatureToggleQuery): Promise<IMeta>;
getFeatureToggle(req: IAuthRequest<{
featureName: string;
}, ClientFeaturesQuerySchema>, res: Response<ClientFeatureSchema>): Promise<void>;
storeFootprint(): void;
getCacheSizeInBytes(value: any): number;
deepEqualIgnoreOrder: (obj1: any, obj2: any) => boolean;
}
export {};
//# sourceMappingURL=client-feature-toggle.controller.d.ts.map