All files token.ts

100% Statements 14/14
100% Branches 4/4
100% Functions 3/3
100% Lines 12/12
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 28 29  3x   3x       2x 2x 2x         3x 4x       3x 3x   1x     2x   3x  
import { AuthPayload, AuthTokenOptions, StringAnyMap } from './interfaces';
import Payload from './payload';
 
export default class AuthToken {
  public payload: AuthPayload;
  public verifyFn: (accessToken: string) => StringAnyMap;
 
  constructor({ payload, verify }: AuthTokenOptions) {
    this.payload = payload || new Payload();
    this.verifyFn = verify;
  }
  /**
   * Decodes and returns the payload of an accessToken
   */
  public verify(accessToken: string) {
    if (!accessToken) return null;
 
    let tokenPayload: StringAnyMap;
 
    try {
      tokenPayload = this.verifyFn(accessToken);
    } catch (error) {
      return null;
    }
 
    return this.payload.parse(tokenPayload);
  }
}