From 520ffc77a399cc1fd785929b42a84f3d1c8bd106 Mon Sep 17 00:00:00 2001 From: Jiachi Liu Date: Tue, 16 Nov 2021 22:24:54 +0100 Subject: [PATCH] Use globalThis if possible for native fetch in browser build (#22777) --- packages/react-fetch/src/ReactFetchBrowser.js | 5 ++++- scripts/rollup/validate/eslintrc.cjs.js | 1 + 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/packages/react-fetch/src/ReactFetchBrowser.js b/packages/react-fetch/src/ReactFetchBrowser.js index 41df29c8afcc2..473a875c30b1e 100644 --- a/packages/react-fetch/src/ReactFetchBrowser.js +++ b/packages/react-fetch/src/ReactFetchBrowser.js @@ -32,8 +32,11 @@ type RejectedRecord = {| type Record = PendingRecord | ResolvedRecord | RejectedRecord; +declare var globalThis: any; + // TODO: this is a browser-only version. Add a separate Node entry point. -const nativeFetch = window.fetch; +const nativeFetch = (typeof globalThis !== 'undefined' ? globalThis : window) + .fetch; function getRecordMap(): Map { return unstable_getCacheForType(createRecordMap); diff --git a/scripts/rollup/validate/eslintrc.cjs.js b/scripts/rollup/validate/eslintrc.cjs.js index 0adb5a197dd12..e75f5967eeaf7 100644 --- a/scripts/rollup/validate/eslintrc.cjs.js +++ b/scripts/rollup/validate/eslintrc.cjs.js @@ -15,6 +15,7 @@ module.exports = { WeakSet: true, Uint16Array: true, Reflect: true, + globalThis: true, // Vendor specific MSApp: true, __REACT_DEVTOOLS_GLOBAL_HOOK__: true,