2
0
mirror of https://github.com/tenrok/axios.git synced 2026-06-20 20:00:40 +03:00

fix(fetch): treat fetch-related TypeError as an AxiosError.ERR_NETWORK error; (#6380)

This commit is contained in:
Dmitriy Mozgovoy
2024-05-07 21:26:46 +03:00
committed by GitHub
parent 81e0455b7b
commit bb5f9a5ab7
2 changed files with 18 additions and 5 deletions
+8 -5
View File
@@ -196,13 +196,16 @@ export default isFetchSupported && (async (config) => {
} catch (err) { } catch (err) {
onFinish(); onFinish();
let {code} = err; if (err && err.name === 'TypeError' && /fetch/i.test(err.message)) {
throw Object.assign(
if (err.name === 'NetworkError') { new AxiosError('Network Error', AxiosError.ERR_NETWORK, config, request),
code = AxiosError.ERR_NETWORK; {
cause: err.cause || err
}
)
} }
throw AxiosError.from(err, code, config, request); throw AxiosError.from(err, err && err.code, config, request);
} }
}); });
+10
View File
@@ -370,4 +370,14 @@ describe('supports fetch with nodejs', function () {
assert.strictEqual(data, '/?test=1&foo=1&bar=2'); assert.strictEqual(data, '/?test=1&foo=1&bar=2');
}); });
it('should handle fetch failed error as an AxiosError with ERR_NETWORK code', async () => {
try{
await fetchAxios('http://notExistsUrl.in.nowhere');
assert.fail('should fail');
} catch (err) {
assert.strictEqual(String(err), 'AxiosError: Network Error');
assert.strictEqual(err.cause && err.cause.code, 'ENOTFOUND');
}
});
}); });