Skip to content

Commit 6ba8c6c

Browse files
authored
Add Blob.stream() method (#2140)
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::<wasm_streams::readable::sys::ReadableStream>(), ); WebIDL source: https://w3c.github.io/FileAPI/#blob-section Docs: https://developer.mozilla.org/en-US/docs/Web/API/Blob/stream
1 parent adad1fb commit 6ba8c6c

File tree

2 files changed

+10
-0
lines changed

2 files changed

+10
-0
lines changed

crates/web-sys/src/features/gen_Blob.rs

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -212,6 +212,14 @@ extern "C" {
212212
end: f64,
213213
content_type: &str,
214214
) -> Result<Blob, JsValue>;
215+
#[cfg(feature = "ReadableStream")]
216+
# [ wasm_bindgen ( method , structural , js_class = "Blob" , js_name = stream ) ]
217+
#[doc = "The `stream()` method."]
218+
#[doc = ""]
219+
#[doc = "[MDN Documentation](https://developer.mozilla.org/en-US/docs/Web/API/Blob/stream)"]
220+
#[doc = ""]
221+
#[doc = "*This API requires the following crate features to be activated: `Blob`, `ReadableStream`*"]
222+
pub fn stream(this: &Blob) -> ReadableStream;
215223
# [ wasm_bindgen ( method , structural , js_class = "Blob" , js_name = text ) ]
216224
#[doc = "The `text()` method."]
217225
#[doc = ""]

crates/web-sys/webidls/enabled/Blob.webidl

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,8 @@ interface Blob {
2929
[Clamp] optional long long end,
3030
optional DOMString contentType);
3131

32+
// read from the Blob.
33+
[NewObject] ReadableStream stream();
3234
[NewObject] Promise<DOMString> text();
3335
[NewObject] Promise<ArrayBuffer> arrayBuffer();
3436
};

0 commit comments

Comments
 (0)