1
1
'use strict' ;
2
2
const { ReadableWebToNodeStream} = require ( 'readable-web-to-node-stream' ) ;
3
- const toBuffer = require ( 'typedarray-to-buffer' ) ;
4
3
const core = require ( './core' ) ;
5
4
6
5
async function fromStream ( stream ) {
@@ -11,25 +10,25 @@ async function fromStream(stream) {
11
10
}
12
11
13
12
async function fromBlob ( blob ) {
14
- const buffer = await convertBlobToBuffer ( blob ) ;
15
- return core . fromBuffer ( buffer ) ;
13
+ const buffer = await blobToArrayBuffer ( blob ) ;
14
+ return core . fromBuffer ( Buffer . from ( buffer ) ) ;
16
15
}
17
16
18
17
/**
19
- Convert Web API File to Node Buffer .
18
+ Convert Blobs to ArrayBuffer .
20
19
@param {Blob } blob - Web API Blob.
21
- @returns {Promise<Buffer > }
20
+ @returns {Promise<ArrayBuffer > }
22
21
*/
23
- function convertBlobToBuffer ( blob ) {
22
+ function blobToArrayBuffer ( blob ) {
23
+ if ( blob . arrayBuffer ) {
24
+ return blob . arrayBuffer ( ) ;
25
+ }
26
+
27
+ // TODO: Remove when stop supporting older environments
24
28
return new Promise ( ( resolve , reject ) => {
25
29
const fileReader = new FileReader ( ) ;
26
30
fileReader . addEventListener ( 'loadend' , event => {
27
- let data = event . target . result ;
28
- if ( data instanceof ArrayBuffer ) {
29
- data = toBuffer ( new Uint8Array ( event . target . result ) ) ;
30
- }
31
-
32
- resolve ( data ) ;
31
+ resolve ( event . target . result ) ;
33
32
} ) ;
34
33
35
34
fileReader . addEventListener ( 'error' , event => {
0 commit comments