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.
		
		
		
		
		
			
		
			
				
					
					
						
							64 lines
						
					
					
						
							1.7 KiB
						
					
					
				
			
		
		
	
	
							64 lines
						
					
					
						
							1.7 KiB
						
					
					
				| import URLSearchParams from './classes/URLSearchParams.js'
 | |
| import FormData from './classes/FormData.js'
 | |
| 
 | |
| /**
 | |
|  * Determine if we're running in a standard browser environment
 | |
|  *
 | |
|  * This allows axios to run in a web worker, and react-native.
 | |
|  * Both environments support XMLHttpRequest, but not fully standard globals.
 | |
|  *
 | |
|  * web workers:
 | |
|  *  typeof window -> undefined
 | |
|  *  typeof document -> undefined
 | |
|  *
 | |
|  * react-native:
 | |
|  *  navigator.product -> 'ReactNative'
 | |
|  * nativescript
 | |
|  *  navigator.product -> 'NativeScript' or 'NS'
 | |
|  *
 | |
|  * @returns {boolean}
 | |
|  */
 | |
| const isStandardBrowserEnv = (() => {
 | |
|   let product;
 | |
|   if (typeof navigator !== 'undefined' && (
 | |
|     (product = navigator.product) === 'ReactNative' ||
 | |
|     product === 'NativeScript' ||
 | |
|     product === 'NS')
 | |
|   ) {
 | |
|     return false;
 | |
|   }
 | |
| 
 | |
|   return typeof window !== 'undefined' && typeof document !== 'undefined';
 | |
| })();
 | |
| 
 | |
| /**
 | |
|  * Determine if we're running in a standard browser webWorker environment
 | |
|  *
 | |
|  * Although the `isStandardBrowserEnv` method indicates that
 | |
|  * `allows axios to run in a web worker`, the WebWorker will still be
 | |
|  * filtered out due to its judgment standard
 | |
|  * `typeof window !== 'undefined' && typeof document !== 'undefined'`.
 | |
|  * This leads to a problem when axios post `FormData` in webWorker
 | |
|  */
 | |
|  const isStandardBrowserWebWorkerEnv = (() => {
 | |
|   return (
 | |
|     typeof WorkerGlobalScope !== 'undefined' &&
 | |
|     // eslint-disable-next-line no-undef
 | |
|     self instanceof WorkerGlobalScope &&
 | |
|     typeof self.importScripts === 'function'
 | |
|   );
 | |
| })();
 | |
| 
 | |
| 
 | |
| export default {
 | |
|   isBrowser: true,
 | |
|   classes: {
 | |
|     URLSearchParams,
 | |
|     FormData,
 | |
|     Blob
 | |
|   },
 | |
|   isStandardBrowserEnv,
 | |
|   isStandardBrowserWebWorkerEnv,
 | |
|   protocols: ['http', 'https', 'file', 'blob', 'url', 'data']
 | |
| };
 |