import jwt_decode, { InvalidTokenError } from 'jwt-decode'; interface JWT { header: Map; payload: Map; } export function safe_jwt_decode(raw_jwt: string): JWT { try { const header = jwt_decode(raw_jwt, { header: true }) as Map; const payload = jwt_decode(raw_jwt) as Map; return { header: header, payload: payload }; } catch (e) { if (e instanceof InvalidTokenError) { return { header: new Map(), payload: new Map() }; } else { throw e; } } }