mirror of
https://github.com/asadbek064/hyparquet.git
synced 2025-12-07 15:21:55 +00:00
38 lines
934 B
JavaScript
38 lines
934 B
JavaScript
import fs from 'fs'
|
|
|
|
/**
|
|
* Helper function to read .parquet file into ArrayBuffer
|
|
*
|
|
* @param {string} filePath
|
|
* @returns {Promise<ArrayBuffer>}
|
|
*/
|
|
export async function readFileToArrayBuffer(filePath) {
|
|
const buffer = await fs.promises.readFile(filePath)
|
|
return buffer.buffer.slice(buffer.byteOffset, buffer.byteOffset + buffer.byteLength)
|
|
}
|
|
|
|
/**
|
|
* Wrap .parquet file in an AsyncBuffer
|
|
*
|
|
* @typedef {import('../src/types.js').AsyncBuffer} AsyncBuffer
|
|
* @param {string} filePath
|
|
* @returns {AsyncBuffer}
|
|
*/
|
|
export function fileToAsyncBuffer(filePath) {
|
|
return {
|
|
byteLength: fs.statSync(filePath).size,
|
|
slice: async (start, end) => (await readFileToArrayBuffer(filePath)).slice(start, end),
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Read .parquet file into JSON
|
|
*
|
|
* @param {string} filePath
|
|
* @returns {any}
|
|
*/
|
|
export function fileToJson(filePath) {
|
|
const buffer = fs.readFileSync(filePath)
|
|
return JSON.parse(buffer.toString())
|
|
}
|