Comments (5)
The way I am getting around this is:
api.addResponseTransform(response => {
if (response.data) {
const data = camelizeKeys(response.data);
Object.keys(response.data).forEach(key => {
delete response.data[key];
});
Object.keys(data).forEach(key => response.data[key] = data[key]);
}
});
It's not elegant at all. Seems like I cannot change response.data
by assigning a new object. I can only change keys and values.
from apisauce.
Agreed. I really didn't like how I implemented that at all.
The problem is I wanted to play it safe by passing a new object to each transform. I was encountering situations where I was able to break things if i mutated the wrong object (like config
).
So although, it looks like the transform is receiving the response. It's not. It's receiving a decoy.
That's why changing references is messing up your evening.
I started out on the immutable route, but after seeing how slow transforms were once you started passing large data (like file uploads), i opted for the solution you see now.
from apisauce.
@skellock makes sense. What do you suggest is the best way then? My solution works for now, but it's... not great.
from apisauce.
Ok @mmahalwy , [email protected]
is now out. Reassigning data (and everything else) is now a thing.
response.data = camelizeKeys(response.data)
from apisauce.
woohooo! Thank you!
from apisauce.
Related Issues (20)
- Retry with new config HOT 1
- Cannot read properties of undefined (reading 'status') HOT 7
- Request sends Twice returns HTTP 500 Error HOT 2
- doesn't support formData HOT 4
- How to add file CA Certificate https?
- Question about response type declaration HOT 5
- Vulnerability introduced by package follow-redirects HOT 1
- Do I Need To Set Headers Max-Age?
- is there any schedule to upgrade the axios? HOT 4
- Latest version support for Axios ? HOT 2
- addAsyncRequestTransform not tiggering in iOS
- Remove request/response transform. HOT 1
- got 2 test case failed in unit test HOT 1
- TypeError: axios.create is not a function error HOT 3
- Upload image not working on 3.0.1 HOT 3
- error TypeError: axios.isCancel is not a function HOT 1
- create is not a function HOT 3
- Weird behaviour with urls after updating to Xcode 15 HOT 6
- Is there a way to redo a request if failed?
- axiosInstance doesn't inherit default headers from apisauce
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from apisauce.