Skip to content

Commit 03e64c8

Browse files
committed
Add support for reading from a WebStreams
- Stream Blob via a WebStreams, instead of buffering the full content - Update strtok3 to v7.0.0
1 parent 37233b1 commit 03e64c8

File tree

2 files changed

+11
-3
lines changed

2 files changed

+11
-3
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;

package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -212,7 +212,7 @@
212212
"dependencies": {
213213
"readable-web-to-node-stream": "^3.0.2",
214214
"strtok3": "^7.0.0",
215-
"token-types": "^5.0.1"
215+
"token-types": "^6.0.0"
216216
},
217217
"devDependencies": {
218218
"@tokenizer/token": "^0.3.0",

0 commit comments

Comments
 (0)