From 65ece29ae333d4aaf9d592bc9353c7f7fa4f3153 Mon Sep 17 00:00:00 2001
From: Brad Jones <brad@bradjonesllc.com>
Date: Sat, 16 Apr 2022 16:40:10 -0600
Subject: [PATCH 1/3] Provide type for Orbit.fetch

---
 packages/@orbit/core/src/main.ts | 1 +
 1 file changed, 1 insertion(+)

diff --git a/packages/@orbit/core/src/main.ts b/packages/@orbit/core/src/main.ts
index ac9c3c2a..3bea09e3 100644
--- a/packages/@orbit/core/src/main.ts
+++ b/packages/@orbit/core/src/main.ts
@@ -11,6 +11,7 @@ export interface OrbitGlobal {
   deprecate: (message: string, test?: boolean | (() => boolean)) => void;
   uuid: () => string;
   debug: boolean;
+  fetch: typeof fetch;
 }
 
 // Establish the root object, `window` (`self`) in the browser, `global`

From 544a3fe126767c1e862f55f8425c3c8c55b90416 Mon Sep 17 00:00:00 2001
From: Brad Jones <brad@bradjonesllc.com>
Date: Sat, 16 Apr 2022 16:54:14 -0600
Subject: [PATCH 2/3] Clean up typing when CI environment doesn't have fetch

---
 packages/@orbit/core/src/main.ts                         | 2 +-
 packages/@orbit/jsonapi/src/jsonapi-request-processor.ts | 4 +---
 2 files changed, 2 insertions(+), 4 deletions(-)

diff --git a/packages/@orbit/core/src/main.ts b/packages/@orbit/core/src/main.ts
index 3bea09e3..b898137c 100644
--- a/packages/@orbit/core/src/main.ts
+++ b/packages/@orbit/core/src/main.ts
@@ -11,7 +11,7 @@ export interface OrbitGlobal {
   deprecate: (message: string, test?: boolean | (() => boolean)) => void;
   uuid: () => string;
   debug: boolean;
-  fetch: typeof fetch;
+  fetch: (input: any, init?: any) => Promise<any>;
 }
 
 // Establish the root object, `window` (`self`) in the browser, `global`
diff --git a/packages/@orbit/jsonapi/src/jsonapi-request-processor.ts b/packages/@orbit/jsonapi/src/jsonapi-request-processor.ts
index 9e40a2a0..cb4a3150 100644
--- a/packages/@orbit/jsonapi/src/jsonapi-request-processor.ts
+++ b/packages/@orbit/jsonapi/src/jsonapi-request-processor.ts
@@ -161,9 +161,7 @@ export class JSONAPIRequestProcessor {
       delete settings.params;
     }
 
-    let fetchFn = (Orbit as any).fetch || Orbit.globals.fetch;
-
-    // console.log('fetch', fullUrl, settings, 'polyfill', fetchFn.polyfill);
+    let fetchFn = Orbit.fetch || Orbit.globals.fetch;
 
     if (settings.timeout !== undefined && settings.timeout > 0) {
       let timeout = settings.timeout;

From 4e42cf777f2fb768f5d26396fb958ad3620d2907 Mon Sep 17 00:00:00 2001
From: Brad Jones <brad@bradjonesllc.com>
Date: Sat, 16 Apr 2022 17:05:38 -0600
Subject: [PATCH 3/3] Can we actually just do typeof fetch but make it not
 required?

---
 packages/@orbit/core/src/main.ts | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/packages/@orbit/core/src/main.ts b/packages/@orbit/core/src/main.ts
index b898137c..738cc010 100644
--- a/packages/@orbit/core/src/main.ts
+++ b/packages/@orbit/core/src/main.ts
@@ -11,7 +11,7 @@ export interface OrbitGlobal {
   deprecate: (message: string, test?: boolean | (() => boolean)) => void;
   uuid: () => string;
   debug: boolean;
-  fetch: (input: any, init?: any) => Promise<any>;
+  fetch?: typeof fetch;
 }
 
 // Establish the root object, `window` (`self`) in the browser, `global`