From 9a0a38701ba2b0f1e6c9e97f2487ab8a948c88e8 Mon Sep 17 00:00:00 2001 From: Julien Elbaz Date: Sat, 2 Jul 2022 09:21:01 +0200 Subject: [PATCH] :factory: Add error cause Should solve #98 --- src/resolver.ts | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/resolver.ts b/src/resolver.ts index 7fea0b7..6c7f97d 100644 --- a/src/resolver.ts +++ b/src/resolver.ts @@ -87,6 +87,7 @@ export const resolver = (wretch: Wretch) => { // The generated fetch request const fetchRequest = middlewareHelper(middlewares)(config.polyfill("fetch"))(url, finalOptions) // Throws on an http error + const referenceError = new Error() const throwingPromise: Promise = fetchRequest .catch(error => { throw new WretchErrorWrapper(error) @@ -95,12 +96,16 @@ export const resolver = (wretch: Wretch) => { if (!response.ok) { if (response.type === "opaque") { const err = new Error("Opaque response") + err["cause"] = referenceError + err.stack = err.stack + "\nCAUSE: " + referenceError.stack err["response"] = response throw err } return response[config.errorType || "text"]().then(body => { // Enhances the error object const err = new Error(body) + err["cause"] = referenceError + err.stack = err.stack + "\nCAUSE: " + referenceError.stack err[config.errorType || "text"] = body err["response"] = response err["status"] = response.status