| 'use strict'; |
| |
| const { setUnrefTimeout } = require('internal/timers'); |
| |
| var nowCache; |
| var utcCache; |
| |
| function nowDate() { |
| if (!nowCache) cache(); |
| return nowCache; |
| } |
| |
| function utcDate() { |
| if (!utcCache) cache(); |
| return utcCache; |
| } |
| |
| function cache() { |
| const d = new Date(); |
| nowCache = d.valueOf(); |
| utcCache = d.toUTCString(); |
| setUnrefTimeout(resetCache, 1000 - d.getMilliseconds()); |
| } |
| |
| function resetCache() { |
| nowCache = undefined; |
| utcCache = undefined; |
| } |
| |
| function ondrain() { |
| if (this._httpMessage) this._httpMessage.emit('drain'); |
| } |
| |
| module.exports = { |
| outHeadersKey: Symbol('outHeadersKey'), |
| ondrain, |
| nowDate, |
| utcDate |
| }; |