Closed teetotum closed 1 year ago
Hi! I am experimenting this Issue with the package. Is there a workaround while still using the library? For now I downgraded axios to 1.1.3 and its functional. Could I help in some way?
@nicolascampbell The only workaround I'm aware of is to stay below axios v1.2.0 (the release v1.2.0-alpha.1 should also work though) if you still want to be able to passthrough requests.
I've create this issue in axios: https://github.com/axios/axios/issues/5474 Here you absolutely need to access to getAdapter() method to access original adapter, as it is not always a function.
by waiting this you can at least manage the support of the array internally, or temporary do an import of axios/lib/adapters/adapter.js to access getAdapter method
A fix for this module is in #363
hello @marcbachmann any update on the fix? :)
Sadly not yet. The PR is ready to merge
@marcbachmann Today I discovered that axios
made getAdapter
accessible (the feature PR was merged Aug 9, 2023 and released with 1.5.0 Aug 26, 2023).
I will now revisit my workaround in my library and fix it properly.
Not sure if you want to refactor your fix for axios-mock-adapter
now to use getAdapter
; which would allow you to get rid of the code that currently strips the interceptors and transformations and fields a separate call to axios
.
I maintain axios-response-mock which covers a similar use-case as does
axios-mock-adapter
. My lib broke with axios version 1.2.0 with regard to passthrough requests; I got runtime errors in the vein of 'originalAdapter is not a function'. I finished analysing the issue and thought I let you know what I found out; because I'm quite sure it broke your lib in the very same way.The following section contains my analysis and thoughts.
Analysis
['xhr', 'http']
the change was introduced with
#5277
(Changelog entry:refactor: allowing adapters to be loaded by name #5277
) (merged November 22nd) and released with v1.2.0 on November 22ndIf a custom adapter now wants to selectively decide which requests to handle itself and which requests to passthrough to the default adapter / delegate to the default adapter, how best would it now obtain a reference to the default adapter?
Before the change, a custom adapter could secure a reference to the default adapter via
axiosInstance.defaults.adapter
and call it later to delegate.Example:
I opened a discussion on the axios github repo.
What options do I have now?
Conclusion:
Today I published version 0.2.2-alpha.1 of
axios-response-mock
and it seems I could fix the issue. But it is only a temporary stopgap. When axios starts supporting a stable way to obtain a reference to the defaultAdapter I will change my fix; if the axios maintainers dismiss the feature request I will probably refactor my lib into the two steps approach sketched above.