-
Notifications
You must be signed in to change notification settings - Fork 55
Description
I was trying to incorporate this into a small CLI project(not within a browser), but every request appears to fail, but they are actually succeeding in the background, the error message just isn't very good.
I chased it down to this line:
| const perf = performance.getEntriesByName(url).slice(-1)[0]; // get latest perf timing |
For my testing, I simply tried to log the matching entries via:
var perf = performance.getEntriesByName(url).slice(-1)[0]; // get latest perf timing
console.log(perf); // <---- This is always undefinedCloser inspection revealed that the name property of PerformanceResourceTiming being set to a URL object instead of a string. I'm unfamiliar with the Performance API, but the spec seems to state that the name property would be a string rather than an object, but it's not immediately clear to me if that is correct.
https://developer.mozilla.org/en-US/docs/Web/API/PerformanceEntry/name
The following is just a dump of the PerformanceResourceTiming itself, if I dont use getEntriesByName. You can see the entries exist, but they are not being matched via URL for some reason.
Error fetching https://speed.cloudflare.com/__down?bytes=0: TypeError: Cannot read properties of undefined (reading 'transferSize')
// console.log(performance.getEntries().slice(-1)[0]);
PerformanceResourceTiming {
name: URL {
href: 'https://speed.cloudflare.com/__down?bytes=0',
origin: 'https://speed.cloudflare.com',
protocol: 'https:',
username: '',
password: '',
host: 'speed.cloudflare.com',
hostname: 'speed.cloudflare.com',
port: '',
pathname: '/__down',
search: '?bytes=0',
searchParams: URLSearchParams { 'bytes' => '0' },
hash: ''
},
entryType: 'resource',
startTime: 3013.801200002432,
duration: -3013.801200002432,
initiatorType: 'fetch',
nextHopProtocol: undefined,
workerStart: 0,
redirectStart: 0,
redirectEnd: 0,
fetchStart: 3013.801200002432,
domainLookupStart: undefined,
domainLookupEnd: undefined,
connectStart: undefined,
connectEnd: undefined,
secureConnectionStart: undefined,
requestStart: 0,
responseStart: 0,
responseEnd: 0,
transferSize: 300,
encodedBodySize: 0,
decodedBodySize: 0
}