mirror of
https://github.com/asadbek064/hyparquet.git
synced 2025-12-15 10:26:38 +00:00
22 lines
798 B
JavaScript
22 lines
798 B
JavaScript
import { compressors } from 'hyparquet-compressors'
|
|
import { parquetQuery } from '../../src/query.js'
|
|
import { asyncBufferFrom } from './parquetWorkerClient.js'
|
|
|
|
self.onmessage = async ({ data }) => {
|
|
const { metadata, from, rowStart, rowEnd, orderBy, columns, queryId, chunks } = data
|
|
const file = await asyncBufferFrom(from)
|
|
/**
|
|
* @typedef {import('../../src/hyparquet.js').ColumnData} ColumnData
|
|
* @type {((chunk: ColumnData) => void) | undefined}
|
|
*/
|
|
const onChunk = chunks ? chunk => self.postMessage({ chunk, queryId }) : undefined
|
|
try {
|
|
const result = await parquetQuery({
|
|
metadata, file, rowStart, rowEnd, orderBy, columns, compressors, onChunk,
|
|
})
|
|
self.postMessage({ result, queryId })
|
|
} catch (error) {
|
|
self.postMessage({ error, queryId })
|
|
}
|
|
}
|