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']
 | 
						|
};
 |