| "use strict"; |
| Object.defineProperty(exports, "__esModule", { |
| value: true |
| }); |
| Object.defineProperty(exports, "cloneResponse", { |
| enumerable: true, |
| get: function() { |
| return cloneResponse; |
| } |
| }); |
| const noop = ()=>{}; |
| let registry; |
| if (globalThis.FinalizationRegistry) { |
| registry = new FinalizationRegistry((weakRef)=>{ |
| const stream = weakRef.deref(); |
| if (stream && !stream.locked) { |
| stream.cancel('Response object has been garbage collected').then(noop); |
| } |
| }); |
| } |
| function cloneResponse(original) { |
| |
| |
| if (!original.body) { |
| return [ |
| original, |
| original |
| ]; |
| } |
| const [body1, body2] = original.body.tee(); |
| const cloned1 = new Response(body1, { |
| status: original.status, |
| statusText: original.statusText, |
| headers: original.headers |
| }); |
| Object.defineProperty(cloned1, 'url', { |
| value: original.url, |
| |
| configurable: true, |
| enumerable: true, |
| writable: false |
| }); |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| if (registry && cloned1.body) { |
| registry.register(cloned1, new WeakRef(cloned1.body)); |
| } |
| const cloned2 = new Response(body2, { |
| status: original.status, |
| statusText: original.statusText, |
| headers: original.headers |
| }); |
| Object.defineProperty(cloned2, 'url', { |
| value: original.url, |
| |
| configurable: true, |
| enumerable: true, |
| writable: false |
| }); |
| return [ |
| cloned1, |
| cloned2 |
| ]; |
| } |
|
|
| |