1
- interface BufferReaderOptions {
1
+ import { Statistics } from "gen-nodejs/parquet_types"
2
+ import { ParquetEnvelopeReader } from "./reader"
3
+ import { NewFileMetaData } from "./types/types"
4
+
5
+ export interface BufferReaderOptions {
2
6
maxSpan ?: number ,
3
7
maxLength ?: number ,
4
8
queueWait ?: number
9
+ default_dictionary_size ?: number ;
10
+ metadata ?: NewFileMetaData
11
+ rawStatistics ?: Statistics
5
12
}
6
13
7
14
interface BufferReaderQueueRow {
@@ -11,19 +18,15 @@ interface BufferReaderQueueRow {
11
18
reject : unknown
12
19
}
13
20
14
- interface EnvelopeReader {
15
- readFn : ( start : number , finish : number ) => Promise < Buffer >
16
- }
17
-
18
21
export default class BufferReader {
19
22
maxSpan : number
20
23
maxLength : number
21
24
queueWait : number
22
25
scheduled ?: boolean
23
26
queue : Array < BufferReaderQueueRow >
24
- envelopeReader : EnvelopeReader
27
+ envelopeReader : ParquetEnvelopeReader
25
28
26
- constructor ( envelopeReader : EnvelopeReader , options : BufferReaderOptions ) {
29
+ constructor ( envelopeReader : ParquetEnvelopeReader , options : BufferReaderOptions ) {
27
30
options = options || { } ;
28
31
this . envelopeReader = envelopeReader ;
29
32
this . maxSpan = options . maxSpan || 100000 ; // 100k
@@ -33,7 +36,7 @@ export default class BufferReader {
33
36
this . queue = [ ] ;
34
37
}
35
38
36
- async read ( offset : number , length : number ) {
39
+ async read ( offset : number , length : number ) : Promise < Buffer > {
37
40
if ( ! this . scheduled ) {
38
41
this . scheduled = true ;
39
42
setTimeout ( ( ) => {
0 commit comments