diff --git a/index.html b/index.html
new file mode 100644
index 0000000..6cce46d
--- /dev/null
+++ b/index.html
@@ -0,0 +1,73 @@
+
+
+
+
+ hyparquet parquet file parser
+
+
+
+ Drop .parquet file here
+
+
+
diff --git a/package.json b/package.json
index bbdc603..14ec09d 100644
--- a/package.json
+++ b/package.json
@@ -20,17 +20,19 @@
"scripts": {
"build": "tsc",
"coverage": "vitest run --coverage",
+ "demo": "http-server -o",
"lint": "eslint . --ext .ts",
"test": "vitest run"
},
"devDependencies": {
"@types/node": "20.10.6",
"@typescript-eslint/eslint-plugin": "6.17.0",
- "@vitest/coverage-v8": "1.1.1",
+ "@vitest/coverage-v8": "1.1.2",
"eslint": "8.56.0",
"eslint-plugin-import": "2.29.1",
"eslint-plugin-jsdoc": "48.0.2",
+ "http-server": "14.1.1",
"typescript": "5.3.3",
- "vitest": "1.1.1"
+ "vitest": "1.1.2"
}
}
diff --git a/src/metadata.ts b/src/metadata.ts
index 716b662..d648064 100644
--- a/src/metadata.ts
+++ b/src/metadata.ts
@@ -112,16 +112,18 @@ export function schemaElement(schema: SchemaElement[], name: string[]): any {
/**
* Replace bigints with numbers.
+ * When parsing parquet files, bigints are used to represent 64-bit integers.
+ * However, JSON does not support bigints, so it's helpful to convert to numbers.
*/
-export function castBigInts(obj: any): any {
+export function toJson(obj: unknown): unknown {
if (typeof obj === 'bigint') {
return Number(obj)
} else if (Array.isArray(obj)) {
- return obj.map(castBigInts)
+ return obj.map(toJson)
} else if (typeof obj === 'object') {
const newObj = {}
for (const key of Object.keys(obj)) {
- newObj[key] = castBigInts(obj[key])
+ newObj[key] = toJson(obj[key])
}
return newObj
} else {
diff --git a/test/metadata.test.js b/test/metadata.test.js
index 05cae21..db8847e 100644
--- a/test/metadata.test.js
+++ b/test/metadata.test.js
@@ -1,6 +1,6 @@
import { promises as fs } from 'fs'
import { describe, expect, it } from 'vitest'
-import { castBigInts, parquetMetadata } from '../src/metadata'
+import { parquetMetadata, toJson } from '../src/metadata'
/**
* Helper function to read .parquet file into ArrayBuffer
@@ -56,7 +56,7 @@ describe('parquetMetadata', () => {
created_by: 'DuckDB',
}
- const casted = castBigInts(result)
+ const casted = toJson(result)
expect(casted).toEqual(expectedMetadata)
})