Clarity SDK WASM
This component exposes Clarinet features to a JS interface through wasm-bindgen.
It's built with wasm-pack.
It powers @hirosystems/clarinet-sdk and
@hirosystems/clarinet-sdk-browser.
Contributing
Build package
Install wasm-pack.
Build for node
wasm-pack build --release --scope hirosystems --out-dir pkg-node --target nodejs
Build for the browser
wasm-pack build --release --scope hirosystems --out-dir pkg-browser --target web
Run this script to build both versions:
node build.mjs
Use the local version of the package
NPM overrides
In most of the situations, your project won't directly depend on this package, but instead on
@hirosystems/clarinet-sdk or @hirosystems/clarinet-sdk-browser. If you want to use a local or
a different version of @hirosystems/clarinet-sdk-wasm or @hirosystems/clarinet-sdk-wasm-browser,
you can use the overrides setting in your package.json:
"overrides": {
"@hirosystems/clarinet-sdk": {
"@hirosystems/clarinet-sdk-wasm": "file:/<absolue-path-to>/clarinet/components/clarinet-sdk-wasm/pkg-node"
}
}
Or for the browser:
"overrides": {
"@hirosystems/clarinet-sdk-browser": {
"@hirosystems/clarinet-sdk-wasm-browser": "file:/<absolue-path-to>/clarinet/components/clarinet-sdk-wasm/pkg-browser"
}
}
NPM link
The command npm link can be useful to run the unit tests in the clarinet-sdk.
See the contribution section of @hirosystems/clarinet-sdk (`../clarinet-sdk/README.md).
Release
The package is built twice with wasm-pack as it can't target node and web at the same time.
The following script will build for both target, it will also rename the package name for the
browser build.
cd components/clarinet-sdk-wasm
node build.mjs
Once built, the packages can be released by running the following commands. Note that by default we
release with the beta tag.
cd pkg-node && npm publish --tag beta && cd ..
cd pkg-browser && npm publish --tag beta && cd ..