File tree Expand file tree Collapse file tree 1 file changed +12
-8
lines changed Expand file tree Collapse file tree 1 file changed +12
-8
lines changed Original file line number Diff line number Diff line change @@ -11,20 +11,24 @@ async function extract(buffer: Uint8Array, nbytes: number): Promise<Uint8Array>
1111 const stream = new ReadableStream ( {
1212 start ( controller ) {
1313 controller . enqueue ( buffer )
14+ controller . close ( )
1415 } ,
1516 } )
1617 const reader = stream . pipeThrough ( new DecompressionStream ( 'gzip' ) ) . getReader ( )
1718 let offset = 0
18- while ( offset < nbytes ) {
19- const { value, done } = await reader . read ( )
20- if ( done ) {
21- break
19+ try {
20+ while ( offset < nbytes ) {
21+ const { value, done } = await reader . read ( )
22+ if ( done || ! value ) {
23+ break
24+ }
25+ result . set ( value . subarray ( 0 , Math . min ( value . length , nbytes - offset ) ) , offset )
26+ offset += value . length
2227 }
23- result . set ( value . subarray ( 0 , Math . min ( value . length , nbytes - offset ) ) , offset )
24- offset += value . length
28+ } finally {
29+ await reader . cancel ( )
2530 }
26- await reader . cancel ( )
27- return result
31+ return result . subarray ( 0 , offset )
2832}
2933
3034export async function loadHeader ( file : BIDSFile ) : Promise < NiftiHeader > {
You can’t perform that action at this time.
0 commit comments