52 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			52 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| const hasBrowserEnv = typeof window !== 'undefined' && typeof document !== 'undefined';
 | |
| 
 | |
| const _navigator = typeof navigator === 'object' && navigator || undefined;
 | |
| 
 | |
| /**
 | |
|  * 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 hasStandardBrowserEnv = hasBrowserEnv &&
 | |
|   (!_navigator || ['ReactNative', 'NativeScript', 'NS'].indexOf(_navigator.product) < 0);
 | |
| 
 | |
| /**
 | |
|  * 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 hasStandardBrowserWebWorkerEnv = (() => {
 | |
|   return (
 | |
|     typeof WorkerGlobalScope !== 'undefined' &&
 | |
|     // eslint-disable-next-line no-undef
 | |
|     self instanceof WorkerGlobalScope &&
 | |
|     typeof self.importScripts === 'function'
 | |
|   );
 | |
| })();
 | |
| 
 | |
| const origin = hasBrowserEnv && window.location.href || 'http://localhost';
 | |
| 
 | |
| export {
 | |
|   hasBrowserEnv,
 | |
|   hasStandardBrowserWebWorkerEnv,
 | |
|   hasStandardBrowserEnv,
 | |
|   _navigator as navigator,
 | |
|   origin
 | |
| }
 |