All files verifier.ts

100% Statements 11/11
100% Branches 4/4
100% Functions 2/2
100% Lines 10/10
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27  3x       3x 8x 4x         4x 4x       3x 3x   1x     2x      
import { AuthPayload, StringAnyMap } from './interfaces';
import Payload from './payload';
/**
 * Returns a function that can verify an accessToken
 */
export default function Verifier({
  payload = new Payload(),
  verify
}: {
  payload?: AuthPayload;
  verify: (accessToken: string) => StringAnyMap;
}) {
  return (accessToken: string) => {
    if (!accessToken) return null;
 
    let tokenPayload: StringAnyMap;
 
    try {
      tokenPayload = verify(accessToken);
    } catch (error) {
      return null;
    }
 
    return payload.parse(tokenPayload);
  };
}