@karelics/angular-unleash-proxy-client
Version:
Angular wrapper for [unleash-proxy-client](https://github.com/Unleash/unleash-proxy-client-js).
15 lines • 4.18 kB
JavaScript
import { inject } from '@angular/core';
import { UnleashService } from '../unleash.service';
import { redirectResult } from './utils';
export function featureEnabled(toggleNames, operatorOrRedirectUrl, redirectUrl) {
return () => {
const unleashService = inject(UnleashService);
const effectiveToggleNames = Array.isArray(toggleNames) ? toggleNames : [toggleNames];
const effectiveOperator = Array.isArray(toggleNames) ? (operatorOrRedirectUrl ?? 'or') : 'or';
const effectiveRedirectUrl = Array.isArray(toggleNames) ? redirectUrl : operatorOrRedirectUrl;
const states = effectiveToggleNames.map(toggle => unleashService.isEnabled(toggle));
const enabledState = effectiveOperator === 'and' ? states.every(Boolean) : states.some(Boolean);
return enabledState || redirectResult(effectiveRedirectUrl);
};
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmVhdHVyZS1lbmFibGVkLmd1YXJkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci11bmxlYXNoLXByb3h5LWNsaWVudC9zcmMvbGliL2d1YXJkcy9mZWF0dXJlLWVuYWJsZWQuZ3VhcmQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV2QyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDcEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUt6QyxNQUFNLFVBQVUsY0FBYyxDQUM1QixXQUE4QixFQUM5QixxQkFBdUQsRUFDdkQsV0FBOEI7SUFFOUIsT0FBTyxHQUFHLEVBQUU7UUFDVixNQUFNLGNBQWMsR0FBRyxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUM7UUFFOUMsTUFBTSxvQkFBb0IsR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDdEYsTUFBTSxpQkFBaUIsR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLHFCQUFxQixJQUFJLElBQUksQ0FBaUIsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO1FBQzlHLE1BQU0sb0JBQW9CLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxxQkFBMkMsQ0FBQztRQUVwSCxNQUFNLE1BQU0sR0FBRyxvQkFBb0IsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7UUFDcEYsTUFBTSxZQUFZLEdBQUcsaUJBQWlCLEtBQUssS0FBSyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRWhHLE9BQU8sWUFBWSxJQUFJLGNBQWMsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO0lBQzlELENBQUMsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENhbkFjdGl2YXRlRm4sIFVybFRyZWUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgVW5sZWFzaFNlcnZpY2UgfSBmcm9tICcuLi91bmxlYXNoLnNlcnZpY2UnO1xuaW1wb3J0IHsgcmVkaXJlY3RSZXN1bHQgfSBmcm9tICcuL3V0aWxzJztcbmltcG9ydCB7IEpvaW5PcGVyYXRvciB9IGZyb20gJy4uL2RpcmVjdGl2ZXMvam9pbi1vcGVyYXRvcic7XG5cbmV4cG9ydCBmdW5jdGlvbiBmZWF0dXJlRW5hYmxlZCh0b2dnbGVOYW1lOiBzdHJpbmcsIHJlZGlyZWN0VXJsPzogc3RyaW5nIHwgVXJsVHJlZSk6IENhbkFjdGl2YXRlRm47XG5leHBvcnQgZnVuY3Rpb24gZmVhdHVyZUVuYWJsZWQodG9nZ2xlTmFtZXM6IHN0cmluZ1tdLCBvcGVyYXRvcj86IEpvaW5PcGVyYXRvciwgcmVkaXJlY3RVcmw/OiBzdHJpbmcgfCBVcmxUcmVlKTogQ2FuQWN0aXZhdGVGbjtcbmV4cG9ydCBmdW5jdGlvbiBmZWF0dXJlRW5hYmxlZChcbiAgdG9nZ2xlTmFtZXM6IHN0cmluZyB8IHN0cmluZ1tdLFxuICBvcGVyYXRvck9yUmVkaXJlY3RVcmw/OiBKb2luT3BlcmF0b3IgfCBzdHJpbmcgfCBVcmxUcmVlLFxuICByZWRpcmVjdFVybD86IHN0cmluZyB8IFVybFRyZWVcbik6IENhbkFjdGl2YXRlRm4ge1xuICByZXR1cm4gKCkgPT4ge1xuICAgIGNvbnN0IHVubGVhc2hTZXJ2aWNlID0gaW5qZWN0KFVubGVhc2hTZXJ2aWNlKTtcblxuICAgIGNvbnN0IGVmZmVjdGl2ZVRvZ2dsZU5hbWVzID0gQXJyYXkuaXNBcnJheSh0b2dnbGVOYW1lcykgPyB0b2dnbGVOYW1lcyA6IFt0b2dnbGVOYW1lc107XG4gICAgY29uc3QgZWZmZWN0aXZlT3BlcmF0b3IgPSBBcnJheS5pc0FycmF5KHRvZ2dsZU5hbWVzKSA/IChvcGVyYXRvck9yUmVkaXJlY3RVcmwgPz8gJ29yJykgYXMgSm9pbk9wZXJhdG9yIDogJ29yJztcbiAgICBjb25zdCBlZmZlY3RpdmVSZWRpcmVjdFVybCA9IEFycmF5LmlzQXJyYXkodG9nZ2xlTmFtZXMpID8gcmVkaXJlY3RVcmwgOiBvcGVyYXRvck9yUmVkaXJlY3RVcmwgYXMgKHN0cmluZyB8IFVybFRyZWUpO1xuXG4gICAgY29uc3Qgc3RhdGVzID0gZWZmZWN0aXZlVG9nZ2xlTmFtZXMubWFwKHRvZ2dsZSA9PiB1bmxlYXNoU2VydmljZS5pc0VuYWJsZWQodG9nZ2xlKSk7XG4gICAgY29uc3QgZW5hYmxlZFN0YXRlID0gZWZmZWN0aXZlT3BlcmF0b3IgPT09ICdhbmQnID8gc3RhdGVzLmV2ZXJ5KEJvb2xlYW4pIDogc3RhdGVzLnNvbWUoQm9vbGVhbik7XG5cbiAgICByZXR1cm4gZW5hYmxlZFN0YXRlIHx8IHJlZGlyZWN0UmVzdWx0KGVmZmVjdGl2ZVJlZGlyZWN0VXJsKTtcbiAgfTtcbn0iXX0=