Skip to content

Commit 0504992

Browse files
committed
Get bodge working
1 parent 7516c4d commit 0504992

4 files changed

Lines changed: 61 additions & 12 deletions

File tree

flake.nix

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -117,7 +117,9 @@
117117
cargo-udeps
118118
cargo-watch
119119
twiggy
120-
wasm-bindgen-cli
120+
binaryen
121+
esbuild
122+
unstable.wasm-bindgen-cli
121123
wasm-tools
122124
];
123125

@@ -128,14 +130,14 @@
128130

129131
projectCommands = {
130132
"bodge" = cmd "Build ucan_wasm with wasm-bodge" ''
131-
set -e
132-
rm -rf "$WORKSPACE_ROOT/ucan_wasm/dist"
133+
set -eu
134+
rm -rf "''${WORKSPACE_ROOT:?WORKSPACE_ROOT is not set}/ucan_wasm/dist"
133135
134136
echo "===> wasm-bodge build ucan_wasm..."
135137
${wasm-bodge-bin} build \
136-
--crate-path "$WORKSPACE_ROOT/ucan_wasm" \
137-
--package-json "$WORKSPACE_ROOT/ucan_wasm/package.json" \
138-
--out-dir "$WORKSPACE_ROOT/ucan_wasm/dist"
138+
--crate-path "''${WORKSPACE_ROOT:?}/ucan_wasm" \
139+
--package-json "''${WORKSPACE_ROOT:?}/ucan_wasm/package.json" \
140+
--out-dir "''${WORKSPACE_ROOT:?}/ucan_wasm/dist"
139141
140142
echo ""
141143
echo "✓ ucan_wasm built with wasm-bodge"

ucan_wasm/Cargo.toml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,12 @@ license.workspace = true
1212
repository.workspace = true
1313
rust-version.workspace = true
1414

15+
[lib]
16+
crate-type = ["cdylib", "rlib"]
17+
1518
[dependencies]
1619
ucan = { path = "../ucan" }
20+
wasm-bindgen = "=0.2.114"
1721

1822
[target.'cfg(target_arch = "wasm32")'.dependencies]
1923
getrandom = { version = "0.2", features = ["js"] }

ucan_wasm/package.json

Lines changed: 40 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,14 +3,14 @@
33
"version": "0.1.0",
44
"description": "",
55
"private": true,
6-
"main": "./pkg/index.ts",
6+
"main": "./dist/cjs/node.cjs",
77
"scripts": {},
88
"keywords": [],
99
"author": "",
1010
"license": "Apache-2.0",
1111
"type": "module",
12-
"module": "pkg/ucan_wasm.js",
13-
"types": "pkg/ucan_wasm.d.ts",
12+
"module": "./dist/esm/bundler.js",
13+
"types": "./dist/index.d.ts",
1414
"files": [
1515
"dist"
1616
],
@@ -33,5 +33,41 @@
3333
"overrides": {
3434
"esbuild@<=0.24.2": ">=0.25.0"
3535
}
36+
},
37+
"sideEffects": [
38+
"./dist/esm/bundler.js",
39+
"./dist/esm/node.js",
40+
"./dist/esm/web.js",
41+
"./dist/esm/workerd.js"
42+
],
43+
"exports": {
44+
".": {
45+
"types": "./dist/index.d.ts",
46+
"workerd": {
47+
"import": "./dist/esm/workerd.js",
48+
"require": "./dist/cjs/web.cjs"
49+
},
50+
"node": {
51+
"import": "./dist/esm/node.js",
52+
"require": "./dist/cjs/node.cjs"
53+
},
54+
"browser": {
55+
"import": "./dist/esm/bundler.js",
56+
"require": "./dist/cjs/web.cjs"
57+
},
58+
"import": "./dist/esm/web.js",
59+
"require": "./dist/cjs/web.cjs"
60+
},
61+
"./slim": {
62+
"types": "./dist/index.d.ts",
63+
"import": "./dist/esm/slim.js",
64+
"require": "./dist/cjs/slim.cjs"
65+
},
66+
"./wasm": "./dist/ucan.wasm",
67+
"./wasm-base64": {
68+
"import": "./dist/esm/wasm-base64.js",
69+
"require": "./dist/cjs/wasm-base64.cjs"
70+
},
71+
"./iife": "./dist/iife/index.js"
3672
}
37-
}
73+
}

ucan_wasm/src/lib.rs

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,11 @@
1-
//! Wasm bindings for `rs-ucan`
1+
//! Wasm bindings for `rs-ucan`.
22
33
#![allow(clippy::multiple_crate_versions)] // syn
4-
// #![cfg_attr(docsrs, feature(doc_cfg))]
4+
5+
use wasm_bindgen::prelude::*;
6+
7+
/// Returns the library version.
8+
#[wasm_bindgen]
9+
pub fn version() -> String {
10+
env!("CARGO_PKG_VERSION").to_string()
11+
}

0 commit comments

Comments
 (0)