mirror of
https://github.com/asadbek064/hyparquet.git
synced 2025-12-31 01:16:37 +00:00
Fix typescript definitions
This commit is contained in:
parent
c893000ec2
commit
09ea11517c
@ -6,6 +6,7 @@
|
||||
[](https://github.com/hyparam/hyparquet/actions)
|
||||
[](https://opensource.org/licenses/MIT)
|
||||
[](https://www.npmjs.com/package/hyparquet?activeTab=dependencies)
|
||||

|
||||
|
||||
Dependency free since 2023!
|
||||
|
||||
|
||||
@ -28,14 +28,14 @@
|
||||
},
|
||||
"devDependencies": {
|
||||
"@types/node": "20.12.7",
|
||||
"@typescript-eslint/eslint-plugin": "7.7.0",
|
||||
"@vitest/coverage-v8": "1.5.0",
|
||||
"@typescript-eslint/eslint-plugin": "7.7.1",
|
||||
"@vitest/coverage-v8": "1.5.2",
|
||||
"eslint": "8.57.0",
|
||||
"eslint-plugin-import": "2.29.1",
|
||||
"eslint-plugin-jsdoc": "48.2.3",
|
||||
"http-server": "14.1.1",
|
||||
"hysnappy": "0.3.0",
|
||||
"typescript": "5.4.5",
|
||||
"vitest": "1.5.0"
|
||||
"vitest": "1.5.2"
|
||||
}
|
||||
}
|
||||
|
||||
8
src/hyparquet.d.ts
vendored
8
src/hyparquet.d.ts
vendored
@ -1,4 +1,6 @@
|
||||
export { AsyncBuffer, FileMetaData, SchemaTree } from './types'
|
||||
import type { AsyncBuffer, Compressors, FileMetaData, SchemaTree } from './types.d.ts'
|
||||
|
||||
export type { AsyncBuffer, FileMetaData, SchemaTree }
|
||||
|
||||
/**
|
||||
* Read parquet data rows from a file-like object.
|
||||
@ -22,7 +24,7 @@ export { AsyncBuffer, FileMetaData, SchemaTree } from './types'
|
||||
* @param {Compressors} [options.compressor] custom decompressors
|
||||
* @returns {Promise<void>} resolves when all requested rows and columns are parsed
|
||||
*/
|
||||
export async function parquetRead(options: ParquetReadOptions): Promise<void>
|
||||
export function parquetRead(options: ParquetReadOptions): Promise<void>
|
||||
|
||||
/**
|
||||
* Read parquet metadata from an async buffer.
|
||||
@ -48,7 +50,7 @@ export async function parquetRead(options: ParquetReadOptions): Promise<void>
|
||||
* @param {number} initialFetchSize initial fetch size in bytes (default 512kb)
|
||||
* @returns {Promise<FileMetaData>} parquet metadata object
|
||||
*/
|
||||
export async function parquetMetadataAsync(asyncBuffer: AsyncBuffer, initialFetchSize: number = 1 << 19 /* 512kb */): Promise<FileMetaData>
|
||||
export function parquetMetadataAsync(asyncBuffer: AsyncBuffer, initialFetchSize?: number): Promise<FileMetaData>
|
||||
|
||||
/**
|
||||
* Read parquet metadata from a buffer
|
||||
|
||||
@ -137,13 +137,15 @@ async function readRowGroup(options, rowGroup, groupStart) {
|
||||
}
|
||||
|
||||
// use pre-loaded row group byte data if available, else read column data
|
||||
/** @type {Promise<ArrayBuffer>} */
|
||||
let buffer
|
||||
let bufferOffset = 0
|
||||
if (groupBuffer) {
|
||||
buffer = Promise.resolve(groupBuffer)
|
||||
bufferOffset = columnStartByte - groupStartByte
|
||||
} else {
|
||||
buffer = file.slice(columnStartByte, columnEndByte)
|
||||
// wrap awaitable to ensure it's a promise
|
||||
buffer = Promise.resolve(file.slice(columnStartByte, columnEndByte))
|
||||
}
|
||||
|
||||
// read column data async
|
||||
|
||||
4
src/types.d.ts
vendored
4
src/types.d.ts
vendored
@ -1,9 +1,11 @@
|
||||
type Awaitable<T> = T | Promise<T>
|
||||
|
||||
/**
|
||||
* File-like object that can read slices of a file asynchronously.
|
||||
*/
|
||||
export interface AsyncBuffer {
|
||||
byteLength: number
|
||||
slice(start: number, end?: number): Promise<ArrayBuffer>
|
||||
slice(start: number, end?: number): Awaitable<ArrayBuffer>
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@ -3,5 +3,3 @@
|
||||
This directory contains binary test files from [apache/parquet-testing](https://github.com/apache/parquet-testing), under the [Apache 2.0 license](https://www.apache.org/licenses/LICENSE-2.0).
|
||||
|
||||
Copyright 2004 The Apache Software Foundation (http://www.apache.org/).
|
||||
|
||||
|
||||
|
||||
@ -63,6 +63,7 @@ describe('parquetMetadataAsync', () => {
|
||||
|
||||
it('throws for asyncBuffer undefined', async () => {
|
||||
const arrayBuffer = undefined
|
||||
// @ts-expect-error testing invalid input
|
||||
await expect(parquetMetadataAsync(arrayBuffer)).rejects
|
||||
.toThrow('parquet file is required')
|
||||
})
|
||||
|
||||
@ -5,13 +5,14 @@ import { fileToAsyncBuffer } from './helpers.js'
|
||||
|
||||
describe('parquetRead', () => {
|
||||
it('throws error for undefined file', async () => {
|
||||
const file = undefined
|
||||
await expect(parquetRead({ file }))
|
||||
// @ts-expect-error testing invalid input
|
||||
await expect(parquetRead({ file: undefined }))
|
||||
.rejects.toThrow('parquet file is required')
|
||||
})
|
||||
|
||||
it('throws error for undefined byteLength', async () => {
|
||||
const file = { byteLength: undefined, slice: () => new ArrayBuffer(0) }
|
||||
// @ts-expect-error testing invalid input
|
||||
await expect(parquetRead({ file }))
|
||||
.rejects.toThrow('parquet file byteLength is required')
|
||||
})
|
||||
|
||||
@ -6,7 +6,7 @@
|
||||
"module": "nodenext",
|
||||
"noEmit": true,
|
||||
"resolveJsonModule": true,
|
||||
"skipLibCheck": true,
|
||||
"skipLibCheck": false,
|
||||
"strict": true,
|
||||
"target": "esnext",
|
||||
},
|
||||
|
||||
Loading…
Reference in New Issue
Block a user