Spaces:
Runtime error
Runtime error
const hasBrowserEnv = typeof window !== 'undefined' && typeof document !== '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 = ( | |
(product) => { | |
return hasBrowserEnv && ['ReactNative', 'NativeScript', 'NS'].indexOf(product) < 0 | |
})(typeof navigator !== 'undefined' && navigator.product); | |
/** | |
* 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' | |
); | |
})(); | |
export { | |
hasBrowserEnv, | |
hasStandardBrowserWebWorkerEnv, | |
hasStandardBrowserEnv | |
} | |