diff --git a/modules/parquet/src/lib/wasm/load-wasm.ts b/modules/parquet/src/lib/wasm/load-wasm.ts index 81e328cb26..81de9db3a7 100644 --- a/modules/parquet/src/lib/wasm/load-wasm.ts +++ b/modules/parquet/src/lib/wasm/load-wasm.ts @@ -1 +1,25 @@ -export {loadWasm} from './load-wasm-node'; +// export {loadWasm} from './load-wasm-node'; + +import {isBrowser} from '@loaders.gl/loader-utils'; + +const PARQUET_WASM_BROWSER = 'parquet-wasm/esm2/arrow1'; +const PARQUET_WASM_NODE = 'parquet-wasm/node/arrow1'; + +let cached: any | null = null; + +export async function loadWasm(wasmUrl?: string) { + if (!cached !== null) { + return cached; + } + + const parquetWASM = isBrowser + ? await import(PARQUET_WASM_BROWSER) + : await import(PARQUET_WASM_NODE); + + // For ESM bundles, need to await the default export, which loads the WASM + await parquetWASM.default(wasmUrl); + + cached = parquetWASM; + + return parquetWASM; +}