Remove a circular dependency (#108)

Also: removed two unused types in import, and remove a useless await
keyword.
This commit is contained in:
Sylvain Lesage 2025-08-15 16:09:00 -04:00 committed by GitHub
parent d475a85c27
commit 1f7bc6879f
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 20 additions and 22 deletions

@ -1,28 +1,9 @@
import { parquetRead } from './read.js'
export { parquetMetadata, parquetMetadataAsync, parquetSchema } from './metadata.js'
export { parquetRead }
export { parquetRead, parquetReadObjects } from './read.js'
export { parquetQuery } from './query.js'
export { snappyUncompress } from './snappy.js'
export { asyncBufferFromUrl, byteLengthFromUrl, cachedAsyncBuffer, flatten, toJson } from './utils.js'
/**
* This is a helper function to read parquet row data as a promise.
* It is a wrapper around the more configurable parquetRead function.
*
* @param {Omit<ParquetReadOptions, 'onComplete'>} options
* @returns {Promise<Record<string, any>[]>} resolves when all requested rows and columns are parsed
*/
export function parquetReadObjects(options) {
return new Promise((onComplete, reject) => {
parquetRead({
rowFormat: 'object',
...options,
onComplete,
}).catch(reject)
})
}
/**
* Explicitly export types for use in downstream typescript projects through
* `import { ParquetReadOptions } from 'hyparquet'` for example.

@ -4,7 +4,7 @@ import { assembleAsync, asyncGroupToRows, readRowGroup } from './rowgroup.js'
import { concat, flatten } from './utils.js'
/**
* @import {AsyncBuffer, AsyncRowGroup, DecodedArray, FileMetaData, ParquetReadOptions} from '../src/types.js'
* @import {AsyncRowGroup, DecodedArray, ParquetReadOptions} from '../src/types.js'
*/
/**
* Read parquet data rows from a file-like object.
@ -23,7 +23,7 @@ export async function parquetRead(options) {
options.metadata ??= await parquetMetadataAsync(options.file)
// read row groups
const asyncGroups = await parquetReadAsync(options)
const asyncGroups = parquetReadAsync(options)
const { rowStart = 0, rowEnd, columns, onChunk, onComplete, rowFormat } = options
@ -120,3 +120,20 @@ export async function parquetReadColumn(options) {
}
return flatten(columnData)
}
/**
* This is a helper function to read parquet row data as a promise.
* It is a wrapper around the more configurable parquetRead function.
*
* @param {Omit<ParquetReadOptions, 'onComplete'>} options
* @returns {Promise<Record<string, any>[]>} resolves when all requested rows and columns are parsed
*/
export function parquetReadObjects(options) {
return new Promise((onComplete, reject) => {
parquetRead({
rowFormat: 'object',
...options,
onComplete,
}).catch(reject)
})
}