infinitered / apisauce

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

axiosInstance doesn't inherit default headers from apisauce #324

Open smitroshin opened 7 months ago

smitroshin commented 7 months ago

Description

In some specific cases I need to do a request using axiosInstance. And I'm expecting axiosInstance to have the same configuration as apisauce instance. Unfortunately, headers from axiosInstance doesn't have the same default values specified in apisauce instance headers.

Issue

import { create } from "apisauce";

const apisauceInstance = create({
  headers: {
    "X-Custom-Prop": "customProp",
  },
});

console.log(apisauceInstance.headers["X-Custom-Prop"]);
// "customProp"

console.log(apisauceInstance.axiosInstance.defaults.headers.common["X-Custom-Prop"]);
// undefined

Example on CodeSandbox

Expecting

apisauceInstance.axiosInstance.defaults.headers.common to be the same as apisauceInstance.headers.

My workaround

apisauceInstance.axiosInstance.post("http://some-post-endpoint", undefined, {
  headers: {
    ...apisauceInstance.headers,
    "X-Another-Custom-Prop": "anotherCustomProp",
  },
});

Package version

apisauce@3.0.1