Files
super-app/network/NetworkUtils.ts
2024-05-23 17:30:56 +00:00

41 lines
1.1 KiB
TypeScript

import {
AxiosInstance,
AxiosRequestConfig,
RawAxiosRequestHeaders,
} from "axios";
import { getStringPreference } from "../App/common/utilities/SharedPreferenceUtils";
import packageJson from "../package.json";
import { BUNDLE_VERSION } from "./NetworkConstant";
const getSessionToken = async () => {
return await getStringPreference("SESSION_TOKEN", "string");
};
const getDeviceId = async () => {
return await getStringPreference("DEVICE_ID", "string");
};
const addBundleVersionToHeader = (axiosInstance: AxiosInstance) => {
axiosInstance.interceptors.request.use(requestConfig => {
requestConfig.headers[BUNDLE_VERSION] = (packageJson as any).versionCode;
return requestConfig;
});
};
const mergeHeaders = ({
configs,
}: {
configs: AxiosRequestConfig[];
}): AxiosRequestConfig => {
const mergedHeaders = configs.reduce((acc, config) => {
const headers = config.headers as RawAxiosRequestHeaders;
return { ...acc, ...headers };
}, {} as RawAxiosRequestHeaders);
return {
headers: mergedHeaders,
};
};
export { addBundleVersionToHeader, getDeviceId, getSessionToken, mergeHeaders };