Package Exports
- @szmarczak/http-timer
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (@szmarczak/http-timer) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
http-timer
Timings for HTTP requests
Inspired by the request package.
Usage
'use strict';
const https = require('https');
const timer = require('@szmarczak/http-timer');
const request = https.get('https://httpbin.org/anything');
const timings = timer(request);
request.on('response', response => {
response.on('data', () => {}); // Consume the data somehow
response.on('end', () => {
console.log(timings);
});
});
// { start: 1535708511443,
// socket: 1535708511444,
// lookup: 1535708511444,
// connect: 1535708511582,
// upload: 1535708511887,
// response: 1535708512037,
// end: 1535708512040,
// phases:
// { wait: 1,
// dns: 0,
// tcp: 138,
// request: 305,
// firstByte: 150,
// download: 3,
// total: 597 } }API
timer(request)
Returns: Object
start- Time when the request started.socket- Time when a socket was assigned to the request.lookup- Time when the DNS lookup finished.connect- Time when the socket successfully connected.upload- Time when the request finished uploading.response- Time when the request fired theresponseevent.end- Time when the response fired theendevent.error- Time when the request fired theerrorevent.phaseswait-timings.socket - timings.startdns-timings.lookup - timings.sockettcp-timings.connect - timings.lookuprequest-timings.upload - timings.connectfirstByte-timings.response - timings.uploaddownload-timings.end - timings.responsetotal-timings.end - timings.startortimings.error - timings.start
Note: The time is a number representing the milliseconds elapsed since the UNIX epoch.
License
MIT