Open dominikg opened 4 months ago
This is a critical package/dependency too as it handles request/response, so could have access to all data of applications. Trust/track-record for the maintainer/org of the replacement package should be taken into account as well.
i feel like most usages of axois could just use fetch
i'd be interested in the use cases where fetch isn't quite enough, if we can find some examples
also agreed we should take care to find a trusted, well maintained alternative
axios has a larger api and utilitity functions. a small drop-in replacement is a much easier sell than refactoring large codebases to remove all uses. I do agree that one should look at how axios is used and if it could be replaced by fetch directly without much effort.
What you think about this one https://github.com/suhaotian/xior
it doesn't seem to be 100% api compatible to axios: https://github.com/suhaotian/xior?tab=readme-ov-file#1-is-xior-100-compatiable-with-axios so it would not be usable as a drop-in replacement.
Yeah, but the xior core features is drop-in replacement.
even the redaxios
and feaxios
is not 100% compatiable, and have ESM/commonjs issue.
And they don't support nested object in params
, if want support then need to use qs
package which is already gzip 10kb.
In that case it would help if you documented which parts of xior are api compatible to axios so people can recommend it over axios to projects that use only covered parts.
Similar axios API: axios.create / axios.interceptors / .get/post/put/patch/delete/head/options
Additional: fetch parameters compatible, plugins support, better TS hints.
Replacing axios is easy, replacing all the tests based on axios is not. I was not able to find a drop-in replacement for axios-mock-adapter
and all of the fetch-based mocks are different in substantial ways.
I think we should recommend that people use fetch instead of a third party package. That'll cover most use cases
Would be good to know some cases where fetch isn't enough
I think we should recommend that people use fetch instead of a third party package. That'll cover most use cases
Would be good to know some cases where fetch isn't enough
tracking request progress
i feel like most usages of axois could just use
fetch
i'd be interested in the use cases where fetch isn't quite enough, if we can find some examples
also agreed we should take care to find a trusted, well maintained alternative
interceptors come to mind
For what it's worth: Here is transcript of prompting o1-mini
requesting it to write a simple wrapper around fetch()
with similar functionality like axios
.
Maybe it is useful to gain some insight (it helped me) -> https://gist.github.com/fry69/6bdca157d02491809e577a4093273588
redaxios https://github.com/developit/redaxios is pretty well known but not that active
https://github.com/developit/redaxios/issues/97 mentions https://github.com/divyam234/feaxios which has recent activity also seems to implement more features.
Would save 2MB install size and 80% bundle size (10kb -> 2kb)
50M downloads/week with 140k dependents: https://www.npmjs.com/package/axios