UNPKG

@microsoft/windows-admin-center-sdk

Version:

Microsoft - Windows Admin Center Shell

53 lines 6.7 kB
import { Injectable } from '@angular/core'; import { Router } from '@angular/router'; import * as i0 from "@angular/core"; import * as i1 from "@angular/router"; /** * * @smeDoc {@label Experiments and IsProduction @id sme-dev-guide-utilities-msft-sme-experiments} * * @overview * @file {@filepath ./experiment-key/examples/overview.md} * * @example {@label Experiment key @id experiment-key} * @file {@filename experiment-key.ts @filepath ./experiment-key/examples/experiment-key.ts} * * @example {@label IsProduction @id isProduction} * @file {@filename isproduction.ts @filepath ./experiment-key/examples/isproduction.ts} */ export class ExperimentGuardService { /** * Initializes a new instance of the ExperimentGuardService class. * @param router the router. */ constructor(router) { this.router = router; } /** * Guard against navigating unless angular dev mode is enabled * @param route the current route snapshot * @param state the current router state snapshot */ canActivate(route, state) { const routeData = route.data; let experiments = routeData.experiments || []; let shellExperiments = routeData.shellExperiments || []; if (!Array.isArray(experiments)) { experiments = [experiments]; } if (!Array.isArray(shellExperiments)) { shellExperiments = [shellExperiments]; } if (experiments.every(x => MsftSme.isExperimentEnabled(x)) && shellExperiments.every(x => MsftSme.isExperimentEnabled(x))) { return true; } this.router.navigateByUrl(routeData.redirectTo); return false; } } /** @nocollapse */ ExperimentGuardService.ɵfac = function ExperimentGuardService_Factory(t) { return new (t || ExperimentGuardService)(i0.ɵɵinject(i1.Router)); }; /** @nocollapse */ ExperimentGuardService.ɵprov = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjectable({ token: ExperimentGuardService, factory: ExperimentGuardService.ɵfac }); (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ExperimentGuardService, [{ type: Injectable }], function () { return [{ type: i1.Router }]; }, null); })(); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhwZXJpbWVudC5ndWFyZC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vYW5ndWxhci9zcmMvZ3VhcmRzL2V4cGVyaW1lbnQuZ3VhcmQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBdUMsTUFBTSxFQUF1QixNQUFNLGlCQUFpQixDQUFDOzs7QUFRbkc7Ozs7Ozs7Ozs7OztHQVlHO0FBRUgsTUFBTSxPQUFPLHNCQUFzQjtJQUUvQjs7O09BR0c7SUFDSCxZQUFvQixNQUFjO1FBQWQsV0FBTSxHQUFOLE1BQU0sQ0FBUTtJQUFJLENBQUM7SUFFdkM7Ozs7T0FJRztJQUNJLFdBQVcsQ0FBQyxLQUE2QixFQUFFLEtBQTBCO1FBQ3hFLE1BQU0sU0FBUyxHQUF3QixLQUFLLENBQUMsSUFBSSxDQUFDO1FBQ2xELElBQUksV0FBVyxHQUFHLFNBQVMsQ0FBQyxXQUFXLElBQUksRUFBRSxDQUFDO1FBQzlDLElBQUksZ0JBQWdCLEdBQUcsU0FBUyxDQUFDLGdCQUFnQixJQUFJLEVBQUUsQ0FBQztRQUV4RCxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsRUFBRTtZQUM3QixXQUFXLEdBQUcsQ0FBQyxXQUFXLENBQUMsQ0FBQztTQUMvQjtRQUNELElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLGdCQUFnQixDQUFDLEVBQUU7WUFDbEMsZ0JBQWdCLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1NBQ3pDO1FBRUQsSUFBSSxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLG1CQUFtQixDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksZ0JBQWdCLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLG1CQUFtQixDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDdkgsT0FBTyxJQUFJLENBQUM7U0FDZjtRQUNELElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUNoRCxPQUFPLEtBQUssQ0FBQztJQUNqQixDQUFDOzsrR0E5QlEsc0JBQXNCOzJHQUF0QixzQkFBc0IsV0FBdEIsc0JBQXNCO3VGQUF0QixzQkFBc0I7Y0FEbEMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGVTbmFwc2hvdCwgQ2FuQWN0aXZhdGUsIFJvdXRlciwgUm91dGVyU3RhdGVTbmFwc2hvdCB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IEJhc2VHdWFyZERhdGEgfSBmcm9tICcuL2d1YXJkLWRhdGEnO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBFeHBlcmltZW50R3VhcmREYXRhIGV4dGVuZHMgQmFzZUd1YXJkRGF0YSB7XHJcbiAgICBleHBlcmltZW50czogc3RyaW5nIHwgc3RyaW5nW107XHJcbiAgICBzaGVsbEV4cGVyaW1lbnRzPzogc3RyaW5nIHwgc3RyaW5nW107XHJcbn1cclxuXHJcbi8qKlxyXG4gKlxyXG4gKiBAc21lRG9jIHtAbGFiZWwgRXhwZXJpbWVudHMgYW5kIElzUHJvZHVjdGlvbiBAaWQgc21lLWRldi1ndWlkZS11dGlsaXRpZXMtbXNmdC1zbWUtZXhwZXJpbWVudHN9XHJcbiAqXHJcbiAqIEBvdmVydmlld1xyXG4gKiBAZmlsZSB7QGZpbGVwYXRoIC4vZXhwZXJpbWVudC1rZXkvZXhhbXBsZXMvb3ZlcnZpZXcubWR9XHJcbiAqXHJcbiAqIEBleGFtcGxlIHtAbGFiZWwgRXhwZXJpbWVudCBrZXkgQGlkIGV4cGVyaW1lbnQta2V5fVxyXG4gKiBAZmlsZSB7QGZpbGVuYW1lIGV4cGVyaW1lbnQta2V5LnRzIEBmaWxlcGF0aCAuL2V4cGVyaW1lbnQta2V5L2V4YW1wbGVzL2V4cGVyaW1lbnQta2V5LnRzfVxyXG4gKlxyXG4gKiBAZXhhbXBsZSB7QGxhYmVsIElzUHJvZHVjdGlvbiBAaWQgaXNQcm9kdWN0aW9ufVxyXG4gKiBAZmlsZSB7QGZpbGVuYW1lIGlzcHJvZHVjdGlvbi50cyBAZmlsZXBhdGggLi9leHBlcmltZW50LWtleS9leGFtcGxlcy9pc3Byb2R1Y3Rpb24udHN9XHJcbiAqL1xyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBFeHBlcmltZW50R3VhcmRTZXJ2aWNlIGltcGxlbWVudHMgQ2FuQWN0aXZhdGUge1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogSW5pdGlhbGl6ZXMgYSBuZXcgaW5zdGFuY2Ugb2YgdGhlIEV4cGVyaW1lbnRHdWFyZFNlcnZpY2UgY2xhc3MuXHJcbiAgICAgKiBAcGFyYW0gcm91dGVyIHRoZSByb3V0ZXIuXHJcbiAgICAgKi9cclxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgcm91dGVyOiBSb3V0ZXIpIHsgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogR3VhcmQgYWdhaW5zdCBuYXZpZ2F0aW5nIHVubGVzcyBhbmd1bGFyIGRldiBtb2RlIGlzIGVuYWJsZWRcclxuICAgICAqIEBwYXJhbSByb3V0ZSB0aGUgY3VycmVudCByb3V0ZSBzbmFwc2hvdFxyXG4gICAgICogQHBhcmFtIHN0YXRlIHRoZSBjdXJyZW50IHJvdXRlciBzdGF0ZSBzbmFwc2hvdFxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgY2FuQWN0aXZhdGUocm91dGU6IEFjdGl2YXRlZFJvdXRlU25hcHNob3QsIHN0YXRlOiBSb3V0ZXJTdGF0ZVNuYXBzaG90KTogYm9vbGVhbiB7XHJcbiAgICAgICAgY29uc3Qgcm91dGVEYXRhID0gPEV4cGVyaW1lbnRHdWFyZERhdGE+cm91dGUuZGF0YTtcclxuICAgICAgICBsZXQgZXhwZXJpbWVudHMgPSByb3V0ZURhdGEuZXhwZXJpbWVudHMgfHwgW107XHJcbiAgICAgICAgbGV0IHNoZWxsRXhwZXJpbWVudHMgPSByb3V0ZURhdGEuc2hlbGxFeHBlcmltZW50cyB8fCBbXTtcclxuXHJcbiAgICAgICAgaWYgKCFBcnJheS5pc0FycmF5KGV4cGVyaW1lbnRzKSkge1xyXG4gICAgICAgICAgICBleHBlcmltZW50cyA9IFtleHBlcmltZW50c107XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICghQXJyYXkuaXNBcnJheShzaGVsbEV4cGVyaW1lbnRzKSkge1xyXG4gICAgICAgICAgICBzaGVsbEV4cGVyaW1lbnRzID0gW3NoZWxsRXhwZXJpbWVudHNdO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKGV4cGVyaW1lbnRzLmV2ZXJ5KHggPT4gTXNmdFNtZS5pc0V4cGVyaW1lbnRFbmFibGVkKHgpKSAmJiBzaGVsbEV4cGVyaW1lbnRzLmV2ZXJ5KHggPT4gTXNmdFNtZS5pc0V4cGVyaW1lbnRFbmFibGVkKHgpKSkge1xyXG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGVCeVVybChyb3V0ZURhdGEucmVkaXJlY3RUbyk7XHJcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==