UNPKG

@jamarsto/kiunzi-micro-frontend-tools

Version:
45 lines 6.04 kB
import { RootComponent } from '../../component/root/root.component'; export function moduleRoute(moduleRoute) { const moduleRouteComponent = typeof moduleRoute.component === 'undefined' ? RootComponent : moduleRoute.component; // provided a role without a guard. Hence don't try to guard if (typeof moduleRoute.guards === 'undefined' || moduleRoute.guards === null || moduleRoute.guards.length === 0) { return { matcher: modulePath(), component: moduleRouteComponent, children: moduleRoute.children }; } // provided guard(s) without role(s). Just do authorized check if (typeof moduleRoute.roles === 'undefined' || moduleRoute.roles === null || moduleRoute.roles.length === 0) { return { matcher: modulePath(), component: moduleRouteComponent, canLoad: moduleRoute.guards, canActivate: moduleRoute.guards, canActivateChild: moduleRoute.guards, children: moduleRoute.children }; } // provided guard(s) and role(s). Do full check return { matcher: modulePath(), component: moduleRouteComponent, canLoad: moduleRoute.guards, canActivate: moduleRoute.guards, canActivateChild: moduleRoute.guards, data: { role: moduleRoute.roles }, children: moduleRoute.children }; } function modulePath() { return (url) => { if (url.length > 0) { return ({ consumed: [url[0]] }); } return null; }; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kdWxlLXJvdXRlLmZ1bmN0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2l1bnppLW1pY3JvLWZyb250ZW5kLXRvb2xzL3NyYy9saWIvZnVuY3Rpb24vbW9kdWxlLXJvdXRlL21vZHVsZS1yb3V0ZS5mdW5jdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFHcEUsTUFBTSxVQUFVLFdBQVcsQ0FBQyxXQUF3QjtJQUNsRCxNQUFNLG9CQUFvQixHQUN0QixPQUFPLFdBQVcsQ0FBQyxTQUFTLEtBQUssV0FBVztRQUN4QyxDQUFDLENBQUMsYUFBYTtRQUNmLENBQUMsQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDO0lBQ2hDLDREQUE0RDtJQUM1RCxJQUNJLE9BQU8sV0FBVyxDQUFDLE1BQU0sS0FBSyxXQUFXO1dBQ3RDLFdBQVcsQ0FBQyxNQUFNLEtBQUssSUFBSTtXQUMzQixXQUFXLENBQUMsTUFBTSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7UUFDdEMsT0FBTyxFQUFFLE9BQU8sRUFBRSxVQUFVLEVBQUU7WUFDNUIsU0FBUyxFQUFFLG9CQUFvQjtZQUMvQixRQUFRLEVBQUUsV0FBVyxDQUFDLFFBQVE7U0FDL0IsQ0FBQztLQUNIO0lBQ0QsK0RBQStEO0lBQy9ELElBQUcsT0FBTyxXQUFXLENBQUMsS0FBSyxLQUFLLFdBQVc7V0FDcEMsV0FBVyxDQUFDLEtBQUssS0FBSyxJQUFJO1dBQzFCLFdBQVcsQ0FBQyxLQUFLLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtRQUNyQyxPQUFPLEVBQUUsT0FBTyxFQUFFLFVBQVUsRUFBRTtZQUM1QixTQUFTLEVBQUUsb0JBQW9CO1lBQy9CLE9BQU8sRUFBRSxXQUFXLENBQUMsTUFBTTtZQUMzQixXQUFXLEVBQUUsV0FBVyxDQUFDLE1BQU07WUFDL0IsZ0JBQWdCLEVBQUUsV0FBVyxDQUFDLE1BQU07WUFDcEMsUUFBUSxFQUFFLFdBQVcsQ0FBQyxRQUFRO1NBQy9CLENBQUM7S0FDSDtJQUNELCtDQUErQztJQUMvQyxPQUFPLEVBQUUsT0FBTyxFQUFFLFVBQVUsRUFBRTtRQUM1QixTQUFTLEVBQUUsb0JBQW9CO1FBQy9CLE9BQU8sRUFBRSxXQUFXLENBQUMsTUFBTTtRQUMzQixXQUFXLEVBQUUsV0FBVyxDQUFDLE1BQU07UUFDL0IsZ0JBQWdCLEVBQUUsV0FBVyxDQUFDLE1BQU07UUFDcEMsSUFBSSxFQUFFLEVBQUUsSUFBSSxFQUFFLFdBQVcsQ0FBQyxLQUFLLEVBQUU7UUFDakMsUUFBUSxFQUFFLFdBQVcsQ0FBQyxRQUFRO0tBQy9CLENBQUM7QUFDSixDQUFDO0FBRUQsU0FBUyxVQUFVO0lBQ2pCLE9BQU8sQ0FBQyxHQUFpQixFQUFFLEVBQUU7UUFDM0IsSUFBRyxHQUFHLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtZQUNqQixPQUFPLENBQUMsRUFBRSxRQUFRLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7U0FDakM7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUMsQ0FBQTtBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBSb3V0ZSwgVXJsTWF0Y2hlciwgVXJsU2VnbWVudCB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IFJvb3RDb21wb25lbnQgfSBmcm9tICcuLi8uLi9jb21wb25lbnQvcm9vdC9yb290LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IE1vZHVsZVJvdXRlIH0gZnJvbSAnLi4vLi4vdHlwZXMvbW9kdWxlLXJvdXRlL21vZHVsZS1yb3V0ZS50eXBlJztcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBtb2R1bGVSb3V0ZShtb2R1bGVSb3V0ZTogTW9kdWxlUm91dGUpIDogUm91dGUge1xyXG4gIGNvbnN0IG1vZHVsZVJvdXRlQ29tcG9uZW50OiBhbnkgPVxyXG4gICAgICB0eXBlb2YgbW9kdWxlUm91dGUuY29tcG9uZW50ID09PSAndW5kZWZpbmVkJ1xyXG4gICAgICAgICAgPyBSb290Q29tcG9uZW50XHJcbiAgICAgICAgICA6IG1vZHVsZVJvdXRlLmNvbXBvbmVudDtcclxuICAvLyBwcm92aWRlZCBhIHJvbGUgd2l0aG91dCBhIGd1YXJkLiBIZW5jZSBkb24ndCB0cnkgdG8gZ3VhcmRcclxuICBpZihcclxuICAgICAgdHlwZW9mIG1vZHVsZVJvdXRlLmd1YXJkcyA9PT0gJ3VuZGVmaW5lZCdcclxuICAgICAgfHwgbW9kdWxlUm91dGUuZ3VhcmRzID09PSBudWxsXHJcbiAgICAgIHx8IG1vZHVsZVJvdXRlLmd1YXJkcy5sZW5ndGggPT09IDApIHtcclxuICAgIHJldHVybiB7IG1hdGNoZXI6IG1vZHVsZVBhdGgoKSxcclxuICAgICAgY29tcG9uZW50OiBtb2R1bGVSb3V0ZUNvbXBvbmVudCxcclxuICAgICAgY2hpbGRyZW46IG1vZHVsZVJvdXRlLmNoaWxkcmVuXHJcbiAgICB9O1xyXG4gIH1cclxuICAvLyBwcm92aWRlZCBndWFyZChzKSB3aXRob3V0IHJvbGUocykuICBKdXN0IGRvIGF1dGhvcml6ZWQgY2hlY2tcclxuICBpZih0eXBlb2YgbW9kdWxlUm91dGUucm9sZXMgPT09ICd1bmRlZmluZWQnXHJcbiAgICAgIHx8IG1vZHVsZVJvdXRlLnJvbGVzID09PSBudWxsXHJcbiAgICAgIHx8IG1vZHVsZVJvdXRlLnJvbGVzLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgcmV0dXJuIHsgbWF0Y2hlcjogbW9kdWxlUGF0aCgpLFxyXG4gICAgICBjb21wb25lbnQ6IG1vZHVsZVJvdXRlQ29tcG9uZW50LFxyXG4gICAgICBjYW5Mb2FkOiBtb2R1bGVSb3V0ZS5ndWFyZHMsXHJcbiAgICAgIGNhbkFjdGl2YXRlOiBtb2R1bGVSb3V0ZS5ndWFyZHMsXHJcbiAgICAgIGNhbkFjdGl2YXRlQ2hpbGQ6IG1vZHVsZVJvdXRlLmd1YXJkcyxcclxuICAgICAgY2hpbGRyZW46IG1vZHVsZVJvdXRlLmNoaWxkcmVuXHJcbiAgICB9O1xyXG4gIH1cclxuICAvLyBwcm92aWRlZCBndWFyZChzKSBhbmQgcm9sZShzKS4gRG8gZnVsbCBjaGVja1xyXG4gIHJldHVybiB7IG1hdGNoZXI6IG1vZHVsZVBhdGgoKSxcclxuICAgIGNvbXBvbmVudDogbW9kdWxlUm91dGVDb21wb25lbnQsXHJcbiAgICBjYW5Mb2FkOiBtb2R1bGVSb3V0ZS5ndWFyZHMsXHJcbiAgICBjYW5BY3RpdmF0ZTogbW9kdWxlUm91dGUuZ3VhcmRzLFxyXG4gICAgY2FuQWN0aXZhdGVDaGlsZDogbW9kdWxlUm91dGUuZ3VhcmRzLFxyXG4gICAgZGF0YTogeyByb2xlOiBtb2R1bGVSb3V0ZS5yb2xlcyB9LFxyXG4gICAgY2hpbGRyZW46IG1vZHVsZVJvdXRlLmNoaWxkcmVuXHJcbiAgfTtcclxufVxyXG5cclxuZnVuY3Rpb24gbW9kdWxlUGF0aCgpOiBVcmxNYXRjaGVyIHtcclxuICByZXR1cm4gKHVybDogVXJsU2VnbWVudFtdKSA9PiB7XHJcbiAgICBpZih1cmwubGVuZ3RoID4gMCkge1xyXG4gICAgICByZXR1cm4gKHsgY29uc3VtZWQ6IFt1cmxbMF1dIH0pO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIG51bGw7XHJcbiAgfVxyXG59XHJcbiJdfQ==