summaryrefslogtreecommitdiff
path: root/extensions/fetch/22_body.js
diff options
context:
space:
mode:
Diffstat (limited to 'extensions/fetch/22_body.js')
-rw-r--r--extensions/fetch/22_body.js19
1 files changed, 18 insertions, 1 deletions
diff --git a/extensions/fetch/22_body.js b/extensions/fetch/22_body.js
index 475af035f..9b5bf8eff 100644
--- a/extensions/fetch/22_body.js
+++ b/extensions/fetch/22_body.js
@@ -19,7 +19,7 @@
const { parseFormData, formDataFromEntries, formDataToBlob } =
globalThis.__bootstrap.formData;
const mimesniff = globalThis.__bootstrap.mimesniff;
- const { isReadableStreamDisturbed, errorReadableStream } =
+ const { isReadableStreamDisturbed, errorReadableStream, createProxy } =
globalThis.__bootstrap.streams;
class InnerBody {
@@ -133,6 +133,23 @@
second.length = this.length;
return second;
}
+
+ /**
+ * @returns {InnerBody}
+ */
+ createProxy() {
+ let proxyStreamOrStatic;
+ if (this.streamOrStatic instanceof ReadableStream) {
+ proxyStreamOrStatic = createProxy(this.streamOrStatic);
+ } else {
+ proxyStreamOrStatic = { ...this.streamOrStatic };
+ this.streamOrStatic.consumed = true;
+ }
+ const proxy = new InnerBody(proxyStreamOrStatic);
+ proxy.source = this.source;
+ proxy.length = this.length;
+ return proxy;
+ }
}
/**