MCPcopy Create free account
hub / github.com/apitable/apitable / initAxios

Function initAxios

packages/datasheet/src/modules/api/utils/init_axios.tsx:177–218  ·  view source on GitHub ↗
(store: Store<IReduxState>)

Source from the content-addressed store, hash-verified

175}
176
177export function initAxios(store: Store<IReduxState>) {
178 axios.defaults.paramsSerializer = (params) => {
179 return Object.keys(params)
180 .filter((it) => {
181 return params.hasOwnProperty(it);
182 })
183 .reduce((pre, curr) => {
184 if (params[curr] === null || typeof params[curr] === 'undefined') {
185 return pre;
186 }
187 return (pre ? pre + '&' : '') + curr + '=' + encodeURIComponent(params[curr]);
188 }, '');
189 };
190
191 axios.interceptors.request.use((config) => {
192 redirectIfUserApplyLogout();
193 const customHeaders = window.__initialization_data__.headers;
194 if (customHeaders && Object.keys(customHeaders).length) {
195 for (const k in customHeaders) {
196 config!.headers!.common[k] = customHeaders[k];
197 }
198 }
199 return config;
200 });
201
202 const IGNORE_PATHS = ['/client/info', '/user/me', '/space/link/join', '/org/loadOrSearch', '/field/permission', '/space/features', '/space/info'];
203 axios.interceptors.response.use((response) => {
204 if (!response) return response;
205 if (response.config && response.config.url && IGNORE_PATHS.some((path) => response.config.url?.includes(path))) {
206 return response;
207 }
208 return handleResponse(response.data, response, response?.config?.url);
209 });
210
211 if (process.env.NODE_ENV === 'production') {
212 axios.defaults.headers.common['X-Front-Version'] = getReleaseVersion();
213 const spaceId = getSpaceIdFormTemplate();
214 if (spaceId) {
215 axios.defaults.headers.common['X-Space-Id'] = spaceId;
216 }
217 }
218}

Callers 1

initializerFunction · 0.90

Calls 7

getReleaseVersionFunction · 0.90
getSpaceIdFormTemplateFunction · 0.90
handleResponseFunction · 0.85
keysMethod · 0.65
filterMethod · 0.45
useMethod · 0.45

Tested by

no test coverage detected