You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							82 lines
						
					
					
						
							2.1 KiB
						
					
					
				
			
		
		
	
	
							82 lines
						
					
					
						
							2.1 KiB
						
					
					
				| 'use strict';
 | |
| 
 | |
| import transformData from './transformData.js';
 | |
| import isCancel from '../cancel/isCancel.js';
 | |
| import defaults from '../defaults/index.js';
 | |
| import CanceledError from '../cancel/CanceledError.js';
 | |
| import AxiosHeaders from '../core/AxiosHeaders.js';
 | |
| import adapters from "../adapters/adapters.js";
 | |
| 
 | |
| /**
 | |
|  * Throws a `CanceledError` if cancellation has been requested.
 | |
|  *
 | |
|  * @param {Object} config The config that is to be used for the request
 | |
|  *
 | |
|  * @returns {void}
 | |
|  */
 | |
| function throwIfCancellationRequested(config) {
 | |
|   if (config.cancelToken) {
 | |
|     config.cancelToken.throwIfRequested();
 | |
|   }
 | |
| 
 | |
|   if (config.signal && config.signal.aborted) {
 | |
|     throw new CanceledError(null, config);
 | |
|   }
 | |
| }
 | |
| 
 | |
| /**
 | |
|  * Dispatch a request to the server using the configured adapter.
 | |
|  *
 | |
|  * @param {object} config The config that is to be used for the request
 | |
|  *
 | |
|  * @returns {Promise} The Promise to be fulfilled
 | |
|  */
 | |
| export default function dispatchRequest(config) {
 | |
|   throwIfCancellationRequested(config);
 | |
| 
 | |
|   config.headers = AxiosHeaders.from(config.headers);
 | |
| 
 | |
|   // Transform request data
 | |
|   config.data = transformData.call(
 | |
|     config,
 | |
|     config.transformRequest
 | |
|   );
 | |
| 
 | |
|   if (['post', 'put', 'patch'].indexOf(config.method) !== -1) {
 | |
|     config.headers.setContentType('application/x-www-form-urlencoded', false);
 | |
|   }
 | |
| 
 | |
|   const adapter = adapters.getAdapter(config.adapter || defaults.adapter);
 | |
| 
 | |
|   return adapter(config).then(function onAdapterResolution(response) {
 | |
|     throwIfCancellationRequested(config);
 | |
| 
 | |
|     // Transform response data
 | |
|     response.data = transformData.call(
 | |
|       config,
 | |
|       config.transformResponse,
 | |
|       response
 | |
|     );
 | |
| 
 | |
|     response.headers = AxiosHeaders.from(response.headers);
 | |
| 
 | |
|     return response;
 | |
|   }, function onAdapterRejection(reason) {
 | |
|     if (!isCancel(reason)) {
 | |
|       throwIfCancellationRequested(config);
 | |
| 
 | |
|       // Transform response data
 | |
|       if (reason && reason.response) {
 | |
|         reason.response.data = transformData.call(
 | |
|           config,
 | |
|           config.transformResponse,
 | |
|           reason.response
 | |
|         );
 | |
|         reason.response.headers = AxiosHeaders.from(reason.response.headers);
 | |
|       }
 | |
|     }
 | |
| 
 | |
|     return Promise.reject(reason);
 | |
|   });
 | |
| }
 |