1
- // async function streamToArrayBuffer(stream: ReadableStream, streamSize: number) {
2
- // const result = new Uint8Array(streamSize)
3
- // let bytesRead = 0
4
- // const reader = stream.getReader()
5
- // while (true) {
6
- // const { done, value } = await reader.read()
7
- // if (done) {
8
- // break
9
- // }
10
- // result.set(value, bytesRead)
11
- // bytesRead += value.length
12
- // }
13
- // return result
14
- // }
1
+ async function streamToArrayBuffer ( stream : ReadableStream , streamSize : number ) {
2
+ const result = new Uint8Array ( streamSize )
3
+ let bytesRead = 0
4
+ const reader = stream . getReader ( )
5
+ while ( true ) {
6
+ const { done, value } = await reader . read ( )
7
+ if ( done ) {
8
+ break
9
+ }
10
+ result . set ( value , bytesRead )
11
+ bytesRead += value . length
12
+ }
13
+ return result
14
+ }
15
15
16
16
export default eventHandler ( async ( event ) => {
17
17
const { pathname } = await getValidatedRouterParams ( event , z . object ( {
@@ -29,9 +29,9 @@ export default eventHandler(async (event) => {
29
29
}
30
30
31
31
// FIXME: find a way to re-stream the readable stream
32
- const body = getRequestWebStream ( event ) !
33
- // const stream = getRequestWebStream(event)!
34
- // const body = await streamToArrayBuffer(stream, contentLength)
32
+ // const body = getRequestWebStream(event)!
33
+ const stream = getRequestWebStream ( event ) !
34
+ const body = await streamToArrayBuffer ( stream , contentLength )
35
35
36
36
return useBlob ( ) . put ( pathname , body , query )
37
37
} )
0 commit comments