feat: add duckdb-wasm singleton for client-side parquet queries
Adds src/utils/duckdbClient.js, a lazy-initialized getDb() singleton wrapping the AsyncDuckDB MVP (single-threaded) wasm bundle. Pins @duckdb/duckdb-wasm to ^1.32.0 (npm's latest dist-tag currently points at a -dev prerelease). Excludes the package from Vite's dev-server dependency pre-bundling so its worker/wasm ?url imports resolve correctly. Verified live in the browser under the /crdc-demo/ base path: wasm and worker assets load with 200, and a SELECT 42 query round-trips correctly through the singleton, confirming the risk flagged in the design spec (duckdb-wasm loading correctly from a subpath-served Vite dev server) does not materialize.
This commit is contained in:
@@ -8,4 +8,10 @@ export default defineConfig({
|
||||
server: { port: 5173 },
|
||||
build: { outDir: 'dist' },
|
||||
base: '/crdc-demo/', // Required for subdirectory deployment on git-pages
|
||||
optimizeDeps: {
|
||||
// duckdb-wasm ships its own worker + wasm binaries resolved via `?url`
|
||||
// imports; esbuild's dev-server pre-bundling can rewrite those import
|
||||
// paths and break worker instantiation. Exclude it from pre-bundling.
|
||||
exclude: ['@duckdb/duckdb-wasm'],
|
||||
},
|
||||
})
|
||||
|
||||
Reference in New Issue
Block a user