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.
Installation
NPM:
npm install @szmarczak/http-timer
Yarn:
yarn add @szmarczak/http-timer
Usage
const https = require('https');
const timer = require('@szmarczak/http-timer');
const request = https.get('https://httpbin.org/anything');
timer(request);
request.once('response', response => {
response.resume();
response.once('end', () => {
console.log(response.timings); // You can use `request.timings` as well
});
});
// {
// start: 1572712180361,
// socket: 1572712180362,
// lookup: 1572712180415,
// connect: 1572712180571,
// upload: 1572712180884,
// response: 1572712181037,
// end: 1572712181039,
// error: undefined,
// abort: undefined,
// phases: {
// wait: 1,
// dns: 53,
// tcp: 156,
// request: 313,
// firstByte: 153,
// download: 2,
// total: 678
// }
// }API
timer(request)
Returns: Object
Note: The time is a number representing the milliseconds elapsed since the UNIX epoch.
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.secureConnect- Time when the socket securely connected.upload- Time when the request finished uploading.response- Time when the request firedresponseevent.end- Time when the response firedendevent.error- Time when the request firederrorevent.abort- Time when the request firedabortevent.phaseswait-timings.socket - timings.startdns-timings.lookup - timings.sockettcp-timings.connect - timings.lookuptls-timings.secureConnect - timings.connectrequest-timings.upload - (timings.secureConnect || timings.connect)firstByte-timings.response - timings.uploaddownload-timings.end - timings.responsetotal-(timings.end || timings.error || timings.abort) - timings.start
If something has not been measured yet, it will be undefined.
License
MIT