@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
54 lines • 6.76 kB
JavaScript
import * as JwtTokenProviderActions from './actions';
export const initialState = {
initialTokenStatus: 'uninitialized',
tokens: {},
};
/**
* @param state
* @param action
*/
export function jwtTokenProviderReducer(state = initialState, action) {
switch (action.type) {
case JwtTokenProviderActions.ActionTypes.InitialTokenExtracted: {
if (state.initialTokenStatus !== 'uninitialized') {
return state;
}
if (action.token.length === 0) {
return {
initialTokenStatus: 'empty',
tokens: {},
};
}
return {
initialTokenStatus: 'loaded',
defaultToken: action.token,
tokens: {},
};
}
case JwtTokenProviderActions.ActionTypes.StoreToken: {
const newState = Object.assign(Object.assign({}, state), { tokens: Object.assign({}, state.tokens) });
if (action.isDefaultToken) {
newState.defaultToken = action.token;
newState.tokens = {};
}
newState.tokens[action.tokenName] = action.token;
return newState;
}
case JwtTokenProviderActions.ActionTypes.TokenExpired: {
const newState = Object.assign(Object.assign({}, state), { tokens: Object.assign({}, state.tokens) });
if (state.defaultToken && state.defaultToken === action.token) {
delete newState.defaultToken;
}
for (const k in state.tokens) {
if (state.tokens[k] && state.tokens[k] === action.token) {
delete newState.tokens[k];
}
}
return newState;
}
default: {
return state;
}
}
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVkdWNlci5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0B0ZXJtaW51cy9uZ3gtdG9vbHMvand0LyIsInNvdXJjZXMiOlsiand0LXRva2VuLW1hbmFnbWVudC9yZWR1Y2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyx1QkFBdUIsTUFBTSxXQUFXLENBQUM7QUFjckQsTUFBTSxDQUFDLE1BQU0sWUFBWSxHQUEwQjtJQUNqRCxrQkFBa0IsRUFBRSxlQUFlO0lBQ25DLE1BQU0sRUFBRSxFQUFFO0NBQ1gsQ0FBQztBQUdGOzs7R0FHRztBQUNILE1BQU0sVUFBVSx1QkFBdUIsQ0FDckMsS0FBSyxHQUFHLFlBQVksRUFDcEIsTUFBMEM7SUFFMUMsUUFBUSxNQUFNLENBQUMsSUFBSSxFQUFFO1FBQ25CLEtBQUssdUJBQXVCLENBQUMsV0FBVyxDQUFDLHFCQUFxQixDQUFDLENBQUM7WUFDOUQsSUFBSSxLQUFLLENBQUMsa0JBQWtCLEtBQUssZUFBZSxFQUFFO2dCQUNoRCxPQUFPLEtBQUssQ0FBQzthQUNkO1lBRUQsSUFBSSxNQUFNLENBQUMsS0FBSyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7Z0JBQzdCLE9BQU87b0JBQ0wsa0JBQWtCLEVBQUUsT0FBTztvQkFDM0IsTUFBTSxFQUFFLEVBQUU7aUJBQ1gsQ0FBQzthQUNIO1lBQ0QsT0FBTztnQkFDTCxrQkFBa0IsRUFBRSxRQUFRO2dCQUM1QixZQUFZLEVBQUUsTUFBTSxDQUFDLEtBQUs7Z0JBQzFCLE1BQU0sRUFBRSxFQUFFO2FBQ1gsQ0FBQztTQUVIO1FBQ0QsS0FBSyx1QkFBdUIsQ0FBQyxXQUFXLENBQUMsVUFBVSxDQUFDLENBQUM7WUFDbkQsTUFBTSxRQUFRLG1DQUNULEtBQUssS0FDUixNQUFNLG9CQUFPLEtBQUssQ0FBQyxNQUFNLElBQzFCLENBQUM7WUFHRixJQUFJLE1BQU0sQ0FBQyxjQUFjLEVBQUU7Z0JBQ3pCLFFBQVEsQ0FBQyxZQUFZLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQztnQkFDckMsUUFBUSxDQUFDLE1BQU0sR0FBRyxFQUFFLENBQUM7YUFDdEI7WUFFRCxRQUFRLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDO1lBRWpELE9BQU8sUUFBUSxDQUFDO1NBQ2pCO1FBQ0QsS0FBSyx1QkFBdUIsQ0FBQyxXQUFXLENBQUMsWUFBWSxDQUFDLENBQUM7WUFDckQsTUFBTSxRQUFRLG1DQUNULEtBQUssS0FDUixNQUFNLG9CQUFPLEtBQUssQ0FBQyxNQUFNLElBQzFCLENBQUM7WUFFRixJQUFJLEtBQUssQ0FBQyxZQUFZLElBQUksS0FBSyxDQUFDLFlBQVksS0FBSyxNQUFNLENBQUMsS0FBSyxFQUFFO2dCQUM3RCxPQUFPLFFBQVEsQ0FBQyxZQUFZLENBQUM7YUFDOUI7WUFFRCxLQUFLLE1BQU0sQ0FBQyxJQUFJLEtBQUssQ0FBQyxNQUFNLEVBQUU7Z0JBQzVCLElBQUksS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxLQUFLLE1BQU0sQ0FBQyxLQUFLLEVBQUU7b0JBQ3ZELE9BQU8sUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztpQkFDM0I7YUFDRjtZQUVELE9BQU8sUUFBUSxDQUFDO1NBQ2pCO1FBQ0QsT0FBTyxDQUFDLENBQUM7WUFDUCxPQUFPLEtBQUssQ0FBQztTQUNkO0tBQ0Y7QUFDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgSnd0VG9rZW5Qcm92aWRlckFjdGlvbnMgZnJvbSAnLi9hY3Rpb25zJztcbmltcG9ydCB7IENsYWltTWFwIH0gZnJvbSAnLi9jbGFpbS1tYXAnO1xuXG5cbmV4cG9ydCB0eXBlIFRva2VuczxDPiA9IHsgW1AgaW4gRXh0cmFjdDxrZXlvZiBDLCBzdHJpbmc+XT86IHN0cmluZyB9O1xuXG5cbmV4cG9ydCBpbnRlcmZhY2UgSnd0VG9rZW5Qcm92aWRlclN0YXRlPEMgPSBDbGFpbU1hcD4gIHtcbiAgaW5pdGlhbFRva2VuU3RhdHVzOiAndW5pbml0aWFsaXplZCcgfCAnbG9hZGVkJyB8ICdlbXB0eSc7XG4gIGRlZmF1bHRUb2tlbj86IHN0cmluZztcbiAgdG9rZW5zOiBUb2tlbnM8Qz47XG59XG5cblxuZXhwb3J0IGNvbnN0IGluaXRpYWxTdGF0ZTogSnd0VG9rZW5Qcm92aWRlclN0YXRlID0ge1xuICBpbml0aWFsVG9rZW5TdGF0dXM6ICd1bmluaXRpYWxpemVkJyxcbiAgdG9rZW5zOiB7fSxcbn07XG5cblxuLyoqXG4gKiBAcGFyYW0gc3RhdGVcbiAqIEBwYXJhbSBhY3Rpb25cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGp3dFRva2VuUHJvdmlkZXJSZWR1Y2VyPEMgPSBDbGFpbU1hcD4oXG4gIHN0YXRlID0gaW5pdGlhbFN0YXRlLFxuICBhY3Rpb246IEp3dFRva2VuUHJvdmlkZXJBY3Rpb25zLkFjdGlvbnM8Qz4sXG4pOiBKd3RUb2tlblByb3ZpZGVyU3RhdGUge1xuICBzd2l0Y2ggKGFjdGlvbi50eXBlKSB7XG4gICAgY2FzZSBKd3RUb2tlblByb3ZpZGVyQWN0aW9ucy5BY3Rpb25UeXBlcy5Jbml0aWFsVG9rZW5FeHRyYWN0ZWQ6IHtcbiAgICAgIGlmIChzdGF0ZS5pbml0aWFsVG9rZW5TdGF0dXMgIT09ICd1bmluaXRpYWxpemVkJykge1xuICAgICAgICByZXR1cm4gc3RhdGU7XG4gICAgICB9XG5cbiAgICAgIGlmIChhY3Rpb24udG9rZW4ubGVuZ3RoID09PSAwKSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgaW5pdGlhbFRva2VuU3RhdHVzOiAnZW1wdHknLFxuICAgICAgICAgIHRva2Vuczoge30sXG4gICAgICAgIH07XG4gICAgICB9XG4gICAgICByZXR1cm4ge1xuICAgICAgICBpbml0aWFsVG9rZW5TdGF0dXM6ICdsb2FkZWQnLFxuICAgICAgICBkZWZhdWx0VG9rZW46IGFjdGlvbi50b2tlbixcbiAgICAgICAgdG9rZW5zOiB7fSxcbiAgICAgIH07XG5cbiAgICB9XG4gICAgY2FzZSBKd3RUb2tlblByb3ZpZGVyQWN0aW9ucy5BY3Rpb25UeXBlcy5TdG9yZVRva2VuOiB7XG4gICAgICBjb25zdCBuZXdTdGF0ZTogSnd0VG9rZW5Qcm92aWRlclN0YXRlID0ge1xuICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgdG9rZW5zOiB7IC4uLnN0YXRlLnRva2VucyB9LFxuICAgICAgfTtcblxuXG4gICAgICBpZiAoYWN0aW9uLmlzRGVmYXVsdFRva2VuKSB7XG4gICAgICAgIG5ld1N0YXRlLmRlZmF1bHRUb2tlbiA9IGFjdGlvbi50b2tlbjtcbiAgICAgICAgbmV3U3RhdGUudG9rZW5zID0ge307XG4gICAgICB9XG5cbiAgICAgIG5ld1N0YXRlLnRva2Vuc1thY3Rpb24udG9rZW5OYW1lXSA9IGFjdGlvbi50b2tlbjtcblxuICAgICAgcmV0dXJuIG5ld1N0YXRlO1xuICAgIH1cbiAgICBjYXNlIEp3dFRva2VuUHJvdmlkZXJBY3Rpb25zLkFjdGlvblR5cGVzLlRva2VuRXhwaXJlZDoge1xuICAgICAgY29uc3QgbmV3U3RhdGUgPSB7XG4gICAgICAgIC4uLnN0YXRlLFxuICAgICAgICB0b2tlbnM6IHsgLi4uc3RhdGUudG9rZW5zIH0sXG4gICAgICB9O1xuXG4gICAgICBpZiAoc3RhdGUuZGVmYXVsdFRva2VuICYmIHN0YXRlLmRlZmF1bHRUb2tlbiA9PT0gYWN0aW9uLnRva2VuKSB7XG4gICAgICAgIGRlbGV0ZSBuZXdTdGF0ZS5kZWZhdWx0VG9rZW47XG4gICAgICB9XG5cbiAgICAgIGZvciAoY29uc3QgayBpbiBzdGF0ZS50b2tlbnMpIHtcbiAgICAgICAgaWYgKHN0YXRlLnRva2Vuc1trXSAmJiBzdGF0ZS50b2tlbnNba10gPT09IGFjdGlvbi50b2tlbikge1xuICAgICAgICAgIGRlbGV0ZSBuZXdTdGF0ZS50b2tlbnNba107XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgcmV0dXJuIG5ld1N0YXRlO1xuICAgIH1cbiAgICBkZWZhdWx0OiB7XG4gICAgICByZXR1cm4gc3RhdGU7XG4gICAgfVxuICB9XG59XG4iXX0=