@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
29 lines • 6.47 kB
JavaScript
import { createFeatureSelector, createSelector, } from '@ngrx/store';
import { jwtDecode } from '../jwt-decode/jwt-decode';
import { JWT_TOKEN_MANAGEMENT_STATE_TOKEN, } from './state';
export const getJwtTokenRoot = () => createFeatureSelector(JWT_TOKEN_MANAGEMENT_STATE_TOKEN);
/**
* Return all current tokens
*/
export const getTokens = () => createSelector(getJwtTokenRoot(), (jwtTokenState) => (jwtTokenState ? jwtTokenState.jwtTokens.tokens : {}));
export const getDefaultToken = () => createSelector(getJwtTokenRoot(), jwtTokenState => (jwtTokenState ? jwtTokenState.jwtTokens.defaultToken : undefined));
export const tokenForWithoutDefault = (serviceName) => createSelector(getTokens(), (userState) => userState[serviceName]);
export const tokenFor = (serviceName) => createSelector(getDefaultToken(), tokenForWithoutDefault(serviceName), (defaultToken, serviceToken) => serviceToken || defaultToken);
export const claimsFor = (serviceName) => createSelector(tokenFor(serviceName), (token) => {
if (token) {
try {
return jwtDecode(token);
}
catch (e) {
if (e.name === 'InvalidTokenError') {
return null;
}
throw e;
}
}
else {
return null;
}
});
export const claimValue = (serviceName, claimName) => createSelector(claimsFor(serviceName), (claims) => (claims ? claims[claimName] : null));
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0b3JzLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHRlcm1pbnVzL25neC10b29scy9qd3QvIiwic291cmNlcyI6WyJqd3QtdG9rZW4tbWFuYWdtZW50L3NlbGVjdG9ycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wscUJBQXFCLEVBQ3JCLGNBQWMsR0FDZixNQUFNLGFBQWEsQ0FBQztBQUVyQixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFHckQsT0FBTyxFQUNMLGdDQUFnQyxHQUVqQyxNQUFNLFNBQVMsQ0FBQztBQUdqQixNQUFNLENBQUMsTUFBTSxlQUFlLEdBQUcsR0FBTyxFQUFFLENBQUMscUJBQXFCLENBQXdCLGdDQUFnQyxDQUFDLENBQUM7QUFFeEg7O0dBRUc7QUFDSCxNQUFNLENBQUMsTUFBTSxTQUFTLEdBQUcsR0FBTyxFQUFFLENBQUMsY0FBYyxDQUMvQyxlQUFlLEVBQU0sRUFDckIsQ0FBQyxhQUFhLEVBQWMsRUFBRSxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQ3JGLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxlQUFlLEdBQUcsR0FBRyxFQUFFLENBQUMsY0FBYyxDQUNqRCxlQUFlLEVBQUUsRUFDakIsYUFBYSxDQUFDLEVBQUUsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUNwRixDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sc0JBQXNCLEdBQ2pDLENBQW9ELFdBQXdCLEVBQUUsRUFBRSxDQUFDLGNBQWMsQ0FDN0YsU0FBUyxFQUFNLEVBQ2YsQ0FBQyxTQUFTLEVBQXNCLEVBQUUsQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLENBQzFELENBQUM7QUFFSixNQUFNLENBQUMsTUFBTSxRQUFRLEdBQUcsQ0FBb0QsV0FBd0IsRUFBRSxFQUFFLENBQUMsY0FBYyxDQUNySCxlQUFlLEVBQUUsRUFDakIsc0JBQXNCLENBQWtCLFdBQVcsQ0FBQyxFQUNwRCxDQUFDLFlBQVksRUFBRSxZQUFZLEVBQXNCLEVBQUUsQ0FBQyxZQUFZLElBQUksWUFBWSxDQUNqRixDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sU0FBUyxHQUFHLENBQW9ELFdBQXdCLEVBQUUsRUFBRSxDQUFDLGNBQWMsQ0FDdEgsUUFBUSxDQUFrQixXQUFXLENBQUMsRUFDdEMsQ0FBQyxLQUFLLEVBQTBCLEVBQUU7SUFDaEMsSUFBSSxLQUFLLEVBQUU7UUFDVCxJQUFJO1lBQ0YsT0FBTyxTQUFTLENBQWtCLEtBQUssQ0FBQyxDQUFDO1NBQzFDO1FBQUMsT0FBTyxDQUFDLEVBQUU7WUFDVixJQUFJLENBQUMsQ0FBQyxJQUFJLEtBQUssbUJBQW1CLEVBQUU7Z0JBQ2xDLE9BQU8sSUFBSSxDQUFDO2FBQ2I7WUFDRCxNQUFNLENBQUMsQ0FBQztTQUNUO0tBQ0Y7U0FBTTtRQUNMLE9BQU8sSUFBSSxDQUFDO0tBQ2I7QUFDSCxDQUFDLENBQ0YsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLFVBQVUsR0FBRyxDQUN4QixXQUF3QixFQUN4QixTQUFvQixFQUNwQixFQUFFLENBQUMsY0FBYyxDQUNmLFNBQVMsQ0FBa0IsV0FBVyxDQUFDLEVBQ3ZDLENBQUMsTUFBTSxFQUFxQyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQ25GLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBjcmVhdGVGZWF0dXJlU2VsZWN0b3IsXG4gIGNyZWF0ZVNlbGVjdG9yLFxufSBmcm9tICdAbmdyeC9zdG9yZSc7XG5cbmltcG9ydCB7IGp3dERlY29kZSB9IGZyb20gJy4uL2p3dC1kZWNvZGUvand0LWRlY29kZSc7XG5cbmltcG9ydCB7IFRva2VucyB9IGZyb20gJy4vcmVkdWNlcic7XG5pbXBvcnQge1xuICBKV1RfVE9LRU5fTUFOQUdFTUVOVF9TVEFURV9UT0tFTixcbiAgU3RhdGUsXG59IGZyb20gJy4vc3RhdGUnO1xuXG5cbmV4cG9ydCBjb25zdCBnZXRKd3RUb2tlblJvb3QgPSA8Q00+KCkgPT4gY3JlYXRlRmVhdHVyZVNlbGVjdG9yPFN0YXRlPENNPiB8IHVuZGVmaW5lZD4oSldUX1RPS0VOX01BTkFHRU1FTlRfU1RBVEVfVE9LRU4pO1xuXG4vKipcbiAqIFJldHVybiBhbGwgY3VycmVudCB0b2tlbnNcbiAqL1xuZXhwb3J0IGNvbnN0IGdldFRva2VucyA9IDxDTT4oKSA9PiBjcmVhdGVTZWxlY3RvcihcbiAgZ2V0Snd0VG9rZW5Sb290PENNPigpLFxuICAoand0VG9rZW5TdGF0ZSk6IFRva2VuczxDTT4gPT4gKGp3dFRva2VuU3RhdGUgPyBqd3RUb2tlblN0YXRlLmp3dFRva2Vucy50b2tlbnMgOiB7fSksXG4pO1xuXG5leHBvcnQgY29uc3QgZ2V0RGVmYXVsdFRva2VuID0gKCkgPT4gY3JlYXRlU2VsZWN0b3IoXG4gIGdldEp3dFRva2VuUm9vdCgpLFxuICBqd3RUb2tlblN0YXRlID0+IChqd3RUb2tlblN0YXRlID8gand0VG9rZW5TdGF0ZS5qd3RUb2tlbnMuZGVmYXVsdFRva2VuIDogdW5kZWZpbmVkKSxcbik7XG5cbmV4cG9ydCBjb25zdCB0b2tlbkZvcldpdGhvdXREZWZhdWx0ID1cbiAgPENNLCBTZXJ2aWNlTmFtZSBleHRlbmRzIEV4dHJhY3Q8a2V5b2YgQ00sIHN0cmluZz4+KHNlcnZpY2VOYW1lOiBTZXJ2aWNlTmFtZSkgPT4gY3JlYXRlU2VsZWN0b3IoXG4gICAgZ2V0VG9rZW5zPENNPigpLFxuICAgICh1c2VyU3RhdGUpOiBzdHJpbmcgfCB1bmRlZmluZWQgPT4gdXNlclN0YXRlW3NlcnZpY2VOYW1lXSxcbiAgKTtcblxuZXhwb3J0IGNvbnN0IHRva2VuRm9yID0gPENNLCBTZXJ2aWNlTmFtZSBleHRlbmRzIEV4dHJhY3Q8a2V5b2YgQ00sIHN0cmluZz4+KHNlcnZpY2VOYW1lOiBTZXJ2aWNlTmFtZSkgPT4gY3JlYXRlU2VsZWN0b3IoXG4gIGdldERlZmF1bHRUb2tlbigpLFxuICB0b2tlbkZvcldpdGhvdXREZWZhdWx0PENNLCBTZXJ2aWNlTmFtZT4oc2VydmljZU5hbWUpLFxuICAoZGVmYXVsdFRva2VuLCBzZXJ2aWNlVG9rZW4pOiBzdHJpbmcgfCB1bmRlZmluZWQgPT4gc2VydmljZVRva2VuIHx8IGRlZmF1bHRUb2tlbixcbik7XG5cbmV4cG9ydCBjb25zdCBjbGFpbXNGb3IgPSA8Q00sIFNlcnZpY2VOYW1lIGV4dGVuZHMgRXh0cmFjdDxrZXlvZiBDTSwgc3RyaW5nPj4oc2VydmljZU5hbWU6IFNlcnZpY2VOYW1lKSA9PiBjcmVhdGVTZWxlY3RvcihcbiAgdG9rZW5Gb3I8Q00sIFNlcnZpY2VOYW1lPihzZXJ2aWNlTmFtZSksXG4gICh0b2tlbik6IENNW1NlcnZpY2VOYW1lXSB8IG51bGwgPT4gIHtcbiAgICBpZiAodG9rZW4pIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIHJldHVybiBqd3REZWNvZGU8Q01bU2VydmljZU5hbWVdPih0b2tlbik7XG4gICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIGlmIChlLm5hbWUgPT09ICdJbnZhbGlkVG9rZW5FcnJvcicpIHtcbiAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuICAgICAgICB0aHJvdyBlO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gIH0sXG4pO1xuXG5leHBvcnQgY29uc3QgY2xhaW1WYWx1ZSA9IDxDTSwgU2VydmljZU5hbWUgZXh0ZW5kcyBFeHRyYWN0PGtleW9mIENNLCBzdHJpbmc+LCBDbGFpbU5hbWUgZXh0ZW5kcyBrZXlvZiBDTVtTZXJ2aWNlTmFtZV0+KFxuICBzZXJ2aWNlTmFtZTogU2VydmljZU5hbWUsXG4gIGNsYWltTmFtZTogQ2xhaW1OYW1lLFxuKSA9PiBjcmVhdGVTZWxlY3RvcihcbiAgICBjbGFpbXNGb3I8Q00sIFNlcnZpY2VOYW1lPihzZXJ2aWNlTmFtZSksXG4gICAgKGNsYWltcyk6IENNW1NlcnZpY2VOYW1lXVtDbGFpbU5hbWVdIHwgbnVsbCA9PiAoY2xhaW1zID8gY2xhaW1zW2NsYWltTmFtZV0gOiBudWxsKSxcbiAgKTtcbiJdfQ==