Improve error handling by including response as the cause
BigBlueHat opened this issue · 2 comments
First, thank you for building eleventy-fetch! It has been great for the GET + cache pattern that's so common in static site building.
However, dealing with error responses continues to be painful since eleventy-fetch only returns a prose message:
eleventy-fetch/src/RemoteAssetCache.js
Line 73 in 28201ee
Could that line be changed to the following?
throw new Error(`Bad response for ${this.displayUrl} (${response.status}): ${response.statusText}`, { cause: response })
That would then provide the whole failed response object for further processing. It would help write much more defensive code when 429's, 401's, etc. are found while collecting data.
Thanks!
🎩
I would note that cause
is a Node 16.9+ thing and will only be available in those versions. This package will continue to support Node 14+ in v4.0.0
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Error/cause