Skip to content

Commit 3a3247a

Browse files
committed
Add support for reading from a WebStreams
Stream Blob via a WebStreams, instead of buffering the full content
1 parent 37233b1 commit 3a3247a

File tree

1 file changed

+10
-2
lines changed

1 file changed

+10
-2
lines changed

core.js

+10-2
Original file line numberDiff line numberDiff line change
@@ -88,8 +88,7 @@ export class FileTypeParser {
8888
}
8989

9090
async fromBlob(blob) {
91-
const buffer = await blob.arrayBuffer();
92-
return this.fromBuffer(new Uint8Array(buffer));
91+
return this.fromWebStream(blob.stream());
9392
}
9493

9594
async fromStream(stream) {
@@ -101,6 +100,15 @@ export class FileTypeParser {
101100
}
102101
}
103102

103+
async fromWebStream(webStream) {
104+
const tokenizer = await strtok3.fromWebStream(webStream);
105+
try {
106+
return await this.fromTokenizer(tokenizer);
107+
} finally {
108+
await tokenizer.close();
109+
}
110+
}
111+
104112
async toDetectionStream(readableStream, options = {}) {
105113
const {default: stream} = await import('node:stream');
106114
const {sampleSize = minimumBytes} = options;

0 commit comments

Comments
 (0)