vegafusion-wasm
Version:
VegaFusion WASM package for embedding Vega charts in the browser with a connection to a VegaFusion Runtime
52 lines (41 loc) • 1.54 kB
Markdown
for interfacing with VegaFusion.
For more information, see the VegaFusion repository at https://github.com/hex-inc/vegafusion
Example usage with the VegaFusion server running locally on port 50051, with grpc-enabled:
```
./vegafusion-server --port 50051 --web
```
```javascript
const { vegaFusionEmbed, makeGrpcSendMessageFn } = await import("vegafusion-wasm");
import * as grpcWeb from 'grpc-web';
// Replace with your VegaFusion server hostname
const hostname = 'http://127.0.0.1:50051';
let client = new grpcWeb.GrpcWebClientBase({format: "binary"});
let send_message_grpc = makeGrpcSendMessageFn(client, hostname);
let element = document.getElementById("vega-chart");
let config = {
verbose: false,
debounce_wait: 30,
debounce_max_wait: 60,
embed_opts: {
mode: "vega",
},
};
let chart_handle = await vegaFusionEmbed(
element,
spec, // Replace with your Vega spec
config,
send_message_grpc,
);
```
To use an embedded VegaFusion Runtime compiled with Web Assembly, simply omit the `send_message_grpc` argument from the `vegaFusionEmbed` call. In this configuration, the chart is fully self-contained and does not require a VegaFusion server.
To use this library in a webpack project, you need to add the following [experimental options](https://webpack.js.org/configuration/experiments/) to your webpack config:
```
experiments: {
asyncWebAssembly: true,
topLevelAwait: true,
}
```
Wasm library