{"size": 612, "ext": "js", "max_stars_repo_path": "app/core/guards/alby.guard.js", "max_stars_repo_name": "alby-corp/ultimate-pizza-manager", "max_stars_repo_stars_event_min_datetime": null, "max_stars_repo_stars_event_max_datetime": null, "max_issues_repo_path": "app/core/guards/alby.guard.js", "max_issues_repo_name": "alby-corp/ultimate-pizza-manager", "max_issues_repo_issues_event_min_datetime": null, "max_issues_repo_issues_event_max_datetime": null, "max_forks_repo_path": "app/core/guards/alby.guard.js", "max_forks_repo_name": "alby-corp/ultimate-pizza-manager", "max_forks_repo_forks_event_min_datetime": null, "max_forks_repo_forks_event_max_datetime": null}
{"max_stars_count": null, "max_issues_count": null, "max_forks_count": null, "avg_line_length": 22.6666666667, "max_line_length": 82, "alphanum_fraction": 0.5571895425}
import {UnauthorizedRouteError} from "../errors";

export const AlbyGuard = (function () {

    const privateProps = new WeakMap();

    return class {

        constructor(canActivated, callback) {

            privateProps.set(this, {
                canActivated: canActivated,
                callback: callback
            });
        }

        async canActivated() {

            const isAuthenticated = await privateProps.get(this).canActivated();

            if (!isAuthenticated) {
                throw new UnauthorizedRouteError(privateProps.get(this).callback);
            }
        }
    }
})();
