All files / simple-oauth2/lib/access-token parse-token.js

100% Statements 14/14
100% Branches 6/6
100% Functions 1/1
100% Lines 14/14

Press n or j to go to the next uncovered block, b, p or k for the previous block.

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    1x 1x 1x 1x   1x 19x   19x 4x 3x   15x 13x         2x     19x     1x  
'use strict';
 
const debug = require('debug')('access-token');
const isDate = require('date-fns/is_date');
const parse = require('date-fns/parse');
const addSeconds = require('date-fns/add_seconds');
 
const parseTokenDateProperties = (token) => {
  const parsedTokenProps = {};
 
  if ('expires_at' in token) {
    if (!isDate(token.expires_at)) {
      parsedTokenProps.expires_at = parse(token.expires_at);
    }
  } else if ('expires_in' in token) {
    parsedTokenProps.expires_at = addSeconds(
      new Date(),
      Number.parseInt(token.expires_in, 10)
    );
  } else {
    debug('No token expiration property was found. Ignoring date parsing');
  }
 
  return Object.assign({}, token, parsedTokenProps);
};
 
module.exports = parseTokenDateProperties;