Spaces:
Paused
Paused
Download node_modules/msw/src/browser/utils/deferNetworkRequestsUntil.ts from sam522/GenAI_Course: direct link, hf CLI and curl.
- Browser
- Download file 1.04 kB
-
https://huggingface.co/spaces/sam522/GenAI_Course/resolve/bbf0eafbb40cb551e2f40f8ad8a90a585be08221/node_modules/msw/src/browser/utils/deferNetworkRequestsUntil.ts
- Command line
-
hf download hf://spaces/sam522/GenAI_Course@bbf0eafbb40cb551e2f40f8ad8a90a585be08221/node_modules/msw/src/browser/utils/deferNetworkRequestsUntil.ts
-
curl -L -o deferNetworkRequestsUntil.ts https://huggingface.co/spaces/sam522/GenAI_Course/resolve/bbf0eafbb40cb551e2f40f8ad8a90a585be08221/node_modules/msw/src/browser/utils/deferNetworkRequestsUntil.ts
1.04 kB
| import { until } from '@open-draft/until' | |
| /** | |
| * Intercepts and defers any requests on the page | |
| * until the Service Worker instance is ready. | |
| * Must only be used in a browser. | |
| */ | |
| export function deferNetworkRequestsUntil(predicatePromise: Promise<any>) { | |
| // Defer any `XMLHttpRequest` requests until the Service Worker is ready. | |
| const originalXhrSend = window.XMLHttpRequest.prototype.send | |
| window.XMLHttpRequest.prototype.send = function ( | |
| ...args: Parameters<XMLHttpRequest['send']> | |
| ) { | |
| // Keep this function synchronous to comply with `XMLHttpRequest.prototype.send`, | |
| // because that method is always synchronous. | |
| until(() => predicatePromise).then(() => { | |
| window.XMLHttpRequest.prototype.send = originalXhrSend | |
| this.send(...args) | |
| }) | |
| } | |
| // Defer any `fetch` requests until the Service Worker is ready. | |
| const originalFetch = window.fetch | |
| window.fetch = async (...args) => { | |
| await until(() => predicatePromise) | |
| window.fetch = originalFetch | |
| return window.fetch(...args) | |
| } | |
| } | |