@hpcc-js/wasm is now an ESM by default package - this is a good thing, but does require some breaking changes.
This repository contains a collection of useful c++ libraries compiled to WASM for (re)use in Node JS, Web Browsers and JavaScript Libraries:
Built with:
- emsdk - v3.1.28
v1.x.x
import { graphviz, wasmFolder } from "@hpcc-js/wasm";
wasmFolder("https://cdn.jsdelivr.net/npm/@hpcc-js/wasm/dist");
const dot = "digraph G { Hello -> World }";
graphviz.dot(dot).then(svg => {
const div = document.getElementById("placeholder");
div.innerHTML = svg;
});
graphvizVersion.then(version => console.log(version));
v2.x.x
import { Graphviz } from "@hpcc-js/wasm/graphviz";
const graphviz = await Graphviz.load();
const dot = "digraph G { Hello -> World }";
const svg = graphviz.dot(dot);
console.log(graphviz.version());
Notes:
- Import must specify which wasm library your using
- wasmFolder is no longer needed
- All wasm libraries have the same asynchronous load pattern
const instance = await Wasm.load();
When importing an ESM package AND referencing explicit exports
(like @hpcc-js/wasm/graphviz
or @hpcc-js/wasm/expat
), you should change the following tsconfig.json setting:
moduleResolution: Node16
This will ensure the correct "types" are auto discovered.