import jwt_decode from "jwt-decode";
import { isToken, Token } from "./token";

export const decodeToken = (jwt: string): Token | null => {
  if (jwt === null) {
    return null;
  }
  try {
    const token = jwt_decode(jwt);

    // JWTのpayloadを復号したオブジェクトが、Token interfaceを実装していなかった場合はnull
    if (!isToken(token)) {
      return null;
    }
    return token;
  } catch {
    return null;
  }
};
