@terminus/ngx-tools
Version:
[![CircleCI][circle-badge]][circle-link] [![codecov][codecov-badge]][codecov-project] [![semantic-release][semantic-release-badge]][semantic-release] [![MIT License][license-image]][license-url] <br> [![NPM version][npm-version-image]][npm-url] [![Github
30 lines • 4.76 kB
JavaScript
import { __decorate } from "tslib";
import { Injectable } from '@angular/core';
import { select, Store, } from '@ngrx/store';
import { filter, map, tap, withLatestFrom, } from 'rxjs/operators';
import { FailedToActivateRoute } from '../actions';
import { getDefaultToken, getJwtTokenRoot, } from '../selectors';
let DefaultTokenRequired = class DefaultTokenRequired {
constructor(
// eslint-disable-next-line @typescript-eslint/no-explicit-any
store) {
this.store = store;
this.currentLoadState = this.store.pipe(select(getJwtTokenRoot()), map(s => (s && s.jwtTokens.initialTokenStatus) || 'uninitialized'));
this.currentToken = this.store.pipe(select(getDefaultToken()), map(s => s || ''));
}
canActivate() {
return this.currentLoadState.pipe(filter(s => s !== 'uninitialized'), withLatestFrom(this.currentToken), map(([_, token]) => token.length > 0), tap(result => {
if (!result) {
this.store.dispatch(new FailedToActivateRoute());
}
}));
}
};
DefaultTokenRequired.ctorParameters = () => [
{ type: Store }
];
DefaultTokenRequired = __decorate([
Injectable()
], DefaultTokenRequired);
export { DefaultTokenRequired };
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVmYXVsdFRva2VuUmVxdWlyZWQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AdGVybWludXMvbmd4LXRvb2xzL2p3dC8iLCJzb3VyY2VzIjpbImp3dC10b2tlbi1tYW5hZ21lbnQvZ3VhcmRzL2RlZmF1bHRUb2tlblJlcXVpcmVkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sRUFDTCxNQUFNLEVBQ04sS0FBSyxHQUNOLE1BQU0sYUFBYSxDQUFDO0FBRXJCLE9BQU8sRUFDTCxNQUFNLEVBQ04sR0FBRyxFQUNILEdBQUcsRUFDSCxjQUFjLEdBQ2YsTUFBTSxnQkFBZ0IsQ0FBQztBQUV4QixPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDbkQsT0FBTyxFQUNMLGVBQWUsRUFDZixlQUFlLEdBQ2hCLE1BQU0sY0FBYyxDQUFDO0FBSXRCLElBQWEsb0JBQW9CLEdBQWpDLE1BQWEsb0JBQW9CO0lBVy9CO0lBQ0UsOERBQThEO0lBQ3ZELEtBQWlCO1FBQWpCLFVBQUssR0FBTCxLQUFLLENBQVk7UUFabkIscUJBQWdCLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQ3ZDLE1BQU0sQ0FBQyxlQUFlLEVBQUUsQ0FBQyxFQUN6QixHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsU0FBUyxDQUFDLGtCQUFrQixDQUFDLElBQUksZUFBZSxDQUFDLENBQ25FLENBQUM7UUFFSyxpQkFBWSxHQUF1QixJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FDdkQsTUFBTSxDQUFDLGVBQWUsRUFBRSxDQUFDLEVBQ3pCLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FDbEIsQ0FBQztJQUtDLENBQUM7SUFFRyxXQUFXO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FDL0IsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLGVBQWUsQ0FBQyxFQUNsQyxjQUFjLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxFQUNqQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsRUFDckMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFO1lBQ1gsSUFBSSxDQUFDLE1BQU0sRUFBRTtnQkFDWCxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxJQUFJLHFCQUFxQixFQUFFLENBQUMsQ0FBQzthQUNsRDtRQUNILENBQUMsQ0FBQyxDQUNILENBQUM7SUFDSixDQUFDO0NBQ0YsQ0FBQTs7WUFmaUIsS0FBSzs7QUFiVixvQkFBb0I7SUFEaEMsVUFBVSxFQUFFO0dBQ0Esb0JBQW9CLENBNEJoQztTQTVCWSxvQkFBb0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDYW5BY3RpdmF0ZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQge1xuICBzZWxlY3QsXG4gIFN0b3JlLFxufSBmcm9tICdAbmdyeC9zdG9yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQge1xuICBmaWx0ZXIsXG4gIG1hcCxcbiAgdGFwLFxuICB3aXRoTGF0ZXN0RnJvbSxcbn0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBGYWlsZWRUb0FjdGl2YXRlUm91dGUgfSBmcm9tICcuLi9hY3Rpb25zJztcbmltcG9ydCB7XG4gIGdldERlZmF1bHRUb2tlbixcbiAgZ2V0Snd0VG9rZW5Sb290LFxufSBmcm9tICcuLi9zZWxlY3RvcnMnO1xuXG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBEZWZhdWx0VG9rZW5SZXF1aXJlZCBpbXBsZW1lbnRzIENhbkFjdGl2YXRlIHtcbiAgcHVibGljIGN1cnJlbnRMb2FkU3RhdGUgPSB0aGlzLnN0b3JlLnBpcGUoXG4gICAgc2VsZWN0KGdldEp3dFRva2VuUm9vdCgpKSxcbiAgICBtYXAocyA9PiAocyAmJiBzLmp3dFRva2Vucy5pbml0aWFsVG9rZW5TdGF0dXMpIHx8ICd1bmluaXRpYWxpemVkJyksXG4gICk7XG5cbiAgcHVibGljIGN1cnJlbnRUb2tlbjogT2JzZXJ2YWJsZTxzdHJpbmc+ID0gdGhpcy5zdG9yZS5waXBlKFxuICAgIHNlbGVjdChnZXREZWZhdWx0VG9rZW4oKSksXG4gICAgbWFwKHMgPT4gcyB8fCAnJyksXG4gICk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgICBwdWJsaWMgc3RvcmU6IFN0b3JlPGFueT4sXG4gICkge31cblxuICBwdWJsaWMgY2FuQWN0aXZhdGUoKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgcmV0dXJuIHRoaXMuY3VycmVudExvYWRTdGF0ZS5waXBlKFxuICAgICAgZmlsdGVyKHMgPT4gcyAhPT0gJ3VuaW5pdGlhbGl6ZWQnKSxcbiAgICAgIHdpdGhMYXRlc3RGcm9tKHRoaXMuY3VycmVudFRva2VuKSxcbiAgICAgIG1hcCgoW18sIHRva2VuXSkgPT4gdG9rZW4ubGVuZ3RoID4gMCksXG4gICAgICB0YXAocmVzdWx0ID0+IHtcbiAgICAgICAgaWYgKCFyZXN1bHQpIHtcbiAgICAgICAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKG5ldyBGYWlsZWRUb0FjdGl2YXRlUm91dGUoKSk7XG4gICAgICAgIH1cbiAgICAgIH0pLFxuICAgICk7XG4gIH1cbn1cbiJdfQ==