1- import { openAsBlob } from 'fs'
1+ import fs from 'fs'
2+
3+ export const withResolvers = < T > ( ) => {
4+ let resolve : ( value : T | PromiseLike < T > ) => void
5+ let reject : ( reason ?: unknown ) => void
6+ const promise = new Promise < T > ( ( res , rej ) => {
7+ resolve = res
8+ reject = rej
9+ } )
10+ return { promise, resolve : resolve ! , reject : reject ! }
11+ }
212
313export const unwrapArrayIfSingle = < T extends unknown [ ] > (
414 x : T
@@ -23,39 +33,39 @@ export const readFileToWebStandardFile = (
2333 for ( let i = 0 ; i < files . length ; i ++ )
2434 buffers . push (
2535 new Promise < File > ( ( resolve , reject ) => {
26- // if (openAsBlob)
27- resolve (
28- openAsBlob ( files [ i ] . filepath ) . then (
29- ( blob ) =>
30- new File ( [ blob ] , files [ i ] . originalFilename , {
31- type : files [ i ] . mimetype ,
32- lastModified :
33- files [ i ] . lastModifiedDate . getTime ( )
34- } )
36+ if ( fs . openAsBlob )
37+ resolve (
38+ fs . openAsBlob ( files [ i ] . filepath ) . then (
39+ ( blob ) =>
40+ new File ( [ blob ] , files [ i ] . originalFilename , {
41+ type : files [ i ] . mimetype ,
42+ lastModified :
43+ files [ i ] . lastModifiedDate . getTime ( )
44+ } )
45+ )
46+ )
47+ else {
48+ const buffer = Array < any > ( )
49+ const stream = fs . createReadStream ( files [ i ] . filepath )
50+
51+ stream . on ( 'data' , ( chunk ) => buffer . push ( chunk ) )
52+ stream . on ( 'end' , ( ) =>
53+ resolve (
54+ new File (
55+ [ new Blob ( [ Buffer . concat ( buffer ) ] ) ] ,
56+ files [ i ] . originalFilename ,
57+ {
58+ type : files [ i ] . mimetype ,
59+ lastModified :
60+ files [ i ] . lastModifiedDate . getTime ( )
61+ }
62+ )
63+ )
64+ )
65+ stream . on ( 'error' , ( err ) =>
66+ reject ( `error converting stream - ${ err } ` )
3567 )
36- )
37- // else {
38- // const buffer = Array<any>()
39- // const stream = createReadStream(files[i].filepath)
40-
41- // stream.on('data', (chunk) => buffer.push(chunk))
42- // stream.on('end', () =>
43- // resolve(
44- // new File(
45- // [new Blob([Buffer.concat(buffer)])],
46- // files[i].originalFilename,
47- // {
48- // type: files[i].mimetype,
49- // lastModified:
50- // files[i].lastModifiedDate.getTime()
51- // }
52- // )
53- // )
54- // )
55- // stream.on('error', (err) =>
56- // reject(`error converting stream - ${err}`)
57- // )
58- // }
68+ }
5969 } )
6070 )
6171
0 commit comments