File tree Expand file tree Collapse file tree 4 files changed +22
-1
lines changed Expand file tree Collapse file tree 4 files changed +22
-1
lines changed Original file line number Diff line number Diff line change @@ -29,6 +29,10 @@ export class BIDSFileBrowser implements BIDSFile {
2929 return this . #file. size
3030 }
3131
32+ get size ( ) : number {
33+ return this . #file. size
34+ }
35+
3236 get stream ( ) : ReadableStream < Uint8Array > {
3337 return this . #file. stream ( )
3438 }
@@ -44,6 +48,12 @@ export class BIDSFileBrowser implements BIDSFile {
4448 async readBytes ( size : number , offset = 0 ) : Promise < Uint8Array < ArrayBuffer > > {
4549 return new Uint8Array ( await this . #file. slice ( offset , size ) . arrayBuffer ( ) )
4650 }
51+
52+ async slice ( start : number , end : number ) : Promise < ArrayBuffer > {
53+ return ( await this . readBytes ( end - start , start ) ) . buffer
54+ }
55+
56+ /**
4757}
4858
4959/**
Original file line number Diff line number Diff line change @@ -45,6 +45,10 @@ export class BIDSFileDeno implements BIDSFile {
4545 return this . #fileInfo ? this . #fileInfo. size : - 1
4646 }
4747
48+ get byteLength ( ) : number {
49+ return this . #fileInfo ? this . #fileInfo. size : - 1
50+ }
51+
4852 get stream ( ) : ReadableStream < Uint8Array > {
4953 const handle = this . #openHandle( )
5054 return handle . readable
@@ -87,6 +91,9 @@ export class BIDSFileDeno implements BIDSFile {
8791 return buf . subarray ( 0 , nbytes )
8892 }
8993
94+ async slice ( start : number , end : number ) : Promise < ArrayBuffer > {
95+ return ( await this . readBytes ( end - start , start ) ) . buffer
96+ }
9097 /**
9198 * Return a Deno file handle
9299 */
Original file line number Diff line number Diff line change @@ -6,7 +6,7 @@ import { createUTF8Stream } from './streams.ts'
66export async function loadParquet ( file : BIDSFile , maxRows : number = - 1 ) : Promise < ColumnsMap > {
77 let columnsMap = new ColumnsMap ( )
88 const readOpts : ParquetReadOptions = {
9- file : ( await file . readBytes ( file . size ) ) . buffer ,
9+ file : file ,
1010 // @ts -expect-error
1111 onChunk : ( data ) => columnsMap [ data . columnName ] = data . columnData . map ( entry => String ( entry ) ) ,
1212 }
Original file line number Diff line number Diff line change @@ -15,6 +15,10 @@ export interface BIDSFile {
1515 text : ( ) => Promise < string >
1616 // Read a range of bytes
1717 readBytes : ( size : number , offset ?: number ) => Promise < Uint8Array < ArrayBuffer > >
18+ // Alternative to readBytes used for ArrayBuffer compatibility
19+ slice : ( start : number , end : number ) => Promise < ArrayBuffer >
20+ // Alternative to size used for ArrayBuffer compatibility
21+ byteLength : number
1822 // Access the parent directory
1923 parent : FileTree
2024 // File has been viewed
You can’t perform that action at this time.
0 commit comments