From 9943422c7fafac29d92109bf9516ab6b7454605d Mon Sep 17 00:00:00 2001 From: Jack Grigg Date: Sat, 16 May 2020 22:21:07 +1200 Subject: [PATCH] Add Blob.stream() method This enables a ReadableStream to be obtained for a file, which can then be handled with e.g. https://github.com/MattiasBuelens/wasm-streams let file: web_sys::File = ...; let stream = wasm_streams::readable::ReadableStream::from( file.stream() .unchecked_into::(), ); WebIDL source: https://w3c.github.io/FileAPI/#blob-section Docs: https://developer.mozilla.org/en-US/docs/Web/API/Blob/stream --- crates/web-sys/src/features/gen_Blob.rs | 8 ++++++++ crates/web-sys/webidls/enabled/Blob.webidl | 2 ++ 2 files changed, 10 insertions(+) diff --git a/crates/web-sys/src/features/gen_Blob.rs b/crates/web-sys/src/features/gen_Blob.rs index 38543389751..04d176cd88b 100644 --- a/crates/web-sys/src/features/gen_Blob.rs +++ b/crates/web-sys/src/features/gen_Blob.rs @@ -212,6 +212,14 @@ extern "C" { end: f64, content_type: &str, ) -> Result; + #[cfg(feature = "ReadableStream")] + # [ wasm_bindgen ( method , structural , js_class = "Blob" , js_name = stream ) ] + #[doc = "The `stream()` method."] + #[doc = ""] + #[doc = "[MDN Documentation](https://developer.mozilla.org/en-US/docs/Web/API/Blob/stream)"] + #[doc = ""] + #[doc = "*This API requires the following crate features to be activated: `Blob`, `ReadableStream`*"] + pub fn stream(this: &Blob) -> ReadableStream; # [ wasm_bindgen ( method , structural , js_class = "Blob" , js_name = text ) ] #[doc = "The `text()` method."] #[doc = ""] diff --git a/crates/web-sys/webidls/enabled/Blob.webidl b/crates/web-sys/webidls/enabled/Blob.webidl index 96dc7332087..837e27c7248 100644 --- a/crates/web-sys/webidls/enabled/Blob.webidl +++ b/crates/web-sys/webidls/enabled/Blob.webidl @@ -29,6 +29,8 @@ interface Blob { [Clamp] optional long long end, optional DOMString contentType); + // read from the Blob. + [NewObject] ReadableStream stream(); [NewObject] Promise text(); [NewObject] Promise arrayBuffer(); };