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 25772x 25772x 25772x 25772x 10x 728x 728x 728x 728x 728x 10x 104x 104x 104x 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,
};