UNPKG

@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
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=