-
Notifications
You must be signed in to change notification settings - Fork 105
Closed
Labels
Description
I'm using this library (via https://github.com/prisma-labs/graphql-request) and it fails to make requests when used within a browser service worker. More specifically, it throws:
ReferenceError: XMLHttpRequest is not defined
at browser-ponyfill.js:463
at new Promise (<anonymous>)
at Object.fetch [as default] (browser-ponyfill.js:455)
at GraphQLClient.<anonymous> (index.ts:87)
at step (createRequestBody.ts:45)
at Object.next (createRequestBody.ts:45)
at createRequestBody.ts:45
at new Promise (<anonymous>)
at createRequestBody.ts:45
at GraphQLClient.request (index.ts:73)
Service workers do always have fetch available, but they don't have XMLHttpRequest. See whatwg/xhr#19 for some background from the spec discussion.
Because they are a browser environment though, https://github.com/lquixada/cross-fetch/blob/master/dist/browser-ponyfill.js from this library is used, which incorrectly seems to assume XHR is always available in all modern browser environments.
I think all that's required here is to fall back to the built-in Fetch that is available in this case.
shripadk, madeleineostoja, benwoodward, lucaspbordignon, benmccann and 12 more