diff --git a/.changeset/large-mice-give.md b/.changeset/large-mice-give.md new file mode 100644 index 0000000..f67a38c --- /dev/null +++ b/.changeset/large-mice-give.md @@ -0,0 +1,6 @@ +--- +"@qtsurfer/svelte-timeseries": patch +"@qtsurfer/sveltecharts": patch +--- + +Feature/update docs and deps diff --git a/packages/svelte-timeseries/CHANGELOG.md b/packages/svelte-timeseries/CHANGELOG.md index a0ed574..4d01269 100644 --- a/packages/svelte-timeseries/CHANGELOG.md +++ b/packages/svelte-timeseries/CHANGELOG.md @@ -1,5 +1,16 @@ # @qtsurfer/svelte-timeseries +## 0.4.1 + +### Patch Changes + +- ### Changes + - Dependencies were updated. + - Documentation was updated with installation steps. + +- Updated dependencies + - @qtsurfer/sveltecharts@0.4.1 + ## 0.4.0 ### Minor Changes diff --git a/packages/svelte-timeseries/README.md b/packages/svelte-timeseries/README.md index 1379984..cefdd04 100644 --- a/packages/svelte-timeseries/README.md +++ b/packages/svelte-timeseries/README.md @@ -54,6 +54,48 @@ npm install @qtsurfer/svelte-timeseries yarn add @qtsurfer/svelte-timeseries ``` +**Vite / SvelteKit configuration** + +This library uses DuckDB-WASM under the hood, which relies on Web Workers and WASM binaries. +To ensure proper behavior in development and SSR (Server-Side Rendering), you must update your Vite configuration. + +Add the following to your vite.config.ts (or vite.config.js): + +```ts +import { sveltekit } from '@sveltejs/kit/vite'; +import { defineConfig } from 'vite'; + +export default defineConfig({ + plugins: [sveltekit()], + + ssr: { + // Prevent SvelteKit from externalizing this library during SSR. + // This ensures Vite processes special imports like `...?url` + // which are required for DuckDB worker files. + noExternal: ['@qtsurfer/svelte-timeseries'] + }, + + optimizeDeps: { + // Avoid pre-bundling these packages with esbuild. + // esbuild cannot handle WASM + Web Worker imports used by DuckDB. + exclude: ['@qtsurfer/svelte-timeseries', '@duckdb/duckdb-wasm'] + } +}); +``` + +**Explanation** + +Forces Vite to include this library in the SSR build pipeline. + +- `ssr.noExternal`\ + This allows Vite to correctly transform imports like:\ + \ + `import worker from '...worker.js?url'`\ + which DuckDB uses for its Web Worker runtime. + +- `optimizeDeps.exclude`\ + Prevents Vite from trying to pre-bundle this library and DuckDB-WASM using esbuild. esbuild does not understand WASM and Worker imports, so excluding these packages avoids “Cannot read file ...?url” and similar errors. + Requirements: - SvelteKit project with TypeScript enabled. diff --git a/packages/svelte-timeseries/package.json b/packages/svelte-timeseries/package.json index c9d3fb6..a4f7a0c 100644 --- a/packages/svelte-timeseries/package.json +++ b/packages/svelte-timeseries/package.json @@ -1,7 +1,7 @@ { "private": false, "name": "@qtsurfer/svelte-timeseries", - "version": "0.4.0", + "version": "0.4.1", "license": "Apache-2.0", "author": "QTSurfer (https://github.com/QTSurfer)", "homepage": "https://github.com/QTSurfer/svelte-timeseries", @@ -53,7 +53,6 @@ "svelte": "^5.43.14" }, "devDependencies": { - "@qtsurfer/sveltecharts": "workspace:*", "@sveltejs/adapter-auto": "^7.0.0", "@sveltejs/adapter-static": "^3.0.10", "@sveltejs/kit": "^2.48.6", diff --git a/packages/sveltecharts/CHANGELOG.md b/packages/sveltecharts/CHANGELOG.md index f700d1a..eb31f4b 100644 --- a/packages/sveltecharts/CHANGELOG.md +++ b/packages/sveltecharts/CHANGELOG.md @@ -1,5 +1,13 @@ # @qtsurfer/sveltecharts +## 0.4.1 + +### Patch Changes + +- ### Changes + - Dependencies were updated. + - Documentation was updated with installation steps. + ## 0.4.0 ### Minor Changes diff --git a/packages/sveltecharts/package.json b/packages/sveltecharts/package.json index 216db6b..9870cff 100644 --- a/packages/sveltecharts/package.json +++ b/packages/sveltecharts/package.json @@ -1,7 +1,7 @@ { "private": false, "name": "@qtsurfer/sveltecharts", - "version": "0.4.0", + "version": "0.4.1", "license": "Apache-2.0", "author": "QTSurfer (https://github.com/QTSurfer)", "homepage": "https://github.com/QTSurfer/svelte-timeseries/tree/main/packages/sveltecharts", diff --git a/packages/sveltecharts/src/lib/SVECharts.svelte b/packages/sveltecharts/src/lib/SVECharts.svelte index c533516..b152159 100644 --- a/packages/sveltecharts/src/lib/SVECharts.svelte +++ b/packages/sveltecharts/src/lib/SVECharts.svelte @@ -15,7 +15,6 @@ import { LabelLayout } from 'echarts/features'; import { CanvasRenderer } from 'echarts/renderers'; import type { ECharts, EChartsOption } from './types'; - import 'echarts/theme/dark.js'; // Register the required components use([ @@ -101,7 +100,7 @@ }; function chartAction(element: HTMLElement) { - instance = init(element, isDark ? 'dark' : undefined, { renderer }); + instance = init(element, undefined, { renderer }); const handleResize = () => { instance.resize();