// // This is a utility to help resolve cases where `window.fetch` throws a // `TypeError: Failed to Fetch` without any stack or context for the request // https://github.com/getsentry/sentry-javascript/pull/1293 // export default function setupFetchDebugging() { if (!window.fetch) { return; } const originalFetch = window.fetch; window.fetch = wrappedFetch; async function wrappedFetch(...args) { const initialStack = getCurrentStack(); try { return await originalFetch.call(window, ...args); } catch (err) { if (!err.stack) { console.warn( 'FetchDebugger - fetch encountered an Error without a stack', err, ); console.warn( 'FetchDebugger - overriding stack to point of original call', ); err.stack = initialStack; } throw err; } } } function getCurrentStack() { try { throw new Error('Fake error for generating stack trace'); } catch (err) { return err.stack; } }