infinitered / apisauce

Axios + standardized errors + request/response transforms.
MIT License
2.78k stars 184 forks source link

Is there a way to redo a request if failed? #321

Open extralsc opened 9 months ago

extralsc commented 9 months ago

Hello,

Basiclly I wounder if there is a way to insert the config of a older request in a new one?

For example:

apiClient.addAsyncResponseTransform(async (response) => {
    console.log("Response after request: ", response);

    const prevRequest = response?.config;

    if (response.data.status == "expiredToken" && response.status === 403 && !prevRequest?.sent) {
        prevRequest.sent = true;

        const newAccessTokenResponse = await apiClient.get("/refresh");
        const newAccessToken = newAccessTokenResponse.data.accessToken;

        prevRequest.headers["authorization"] = "Bearer " + newAccessToken;

        **--> // MAKE NEW REQUEST HERE WITH SAME CONFIG AS OLD ONE? apiConfig.config(prevRequest) or something?**
    }

});