All files / lib/internal http.js

100% Statements 33/33
100% Branches 5/5
100% Functions 3/3
100% Lines 33/33

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 29 30 31 32 33 3410x 10x 10x 10x 10x 10x 10x 10x 10x 10x 10x 10x 10x 25872x 25872x 25872x 25872x 10x 725x 725x 725x 725x 725x 10x 110x 110x 110x 10x 10x 10x 10x 10x 10x  
'use strict';
 
const {
  Symbol,
  Date,
  DatePrototypeGetMilliseconds,
  DatePrototypeToUTCString,
} = primordials;
 
const { setUnrefTimeout } = require('internal/timers');
 
let utcCache;
 
function utcDate() {
  if (!utcCache) cache();
  return utcCache;
}
 
function cache() {
  const d = new Date();
  utcCache = DatePrototypeToUTCString(d);
  setUnrefTimeout(resetCache, 1000 - DatePrototypeGetMilliseconds(d));
}
 
function resetCache() {
  utcCache = undefined;
}
 
module.exports = {
  kOutHeaders: Symbol('kOutHeaders'),
  kNeedDrain: Symbol('kNeedDrain'),
  utcDate,
};