Skip to content

Commit 78280bf

Browse files
authored
Switch to ESM / Wasm builds (#45)
1 parent b6e7b70 commit 78280bf

File tree

14 files changed

+1435
-1089
lines changed

14 files changed

+1435
-1089
lines changed

.github/workflows/build.yml

Lines changed: 16 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,9 @@ jobs:
1616
emsdk: [ "tot", "latest" ]
1717
fail-fast: false
1818
steps:
19+
- uses: actions/setup-node@v2
20+
with:
21+
node-version: '16'
1922
- name: "Set up Emsdk"
2023
run: |
2124
mkdir $HOME/emsdk
@@ -75,39 +78,38 @@ jobs:
7578
source $HOME/emsdk/emsdk_env.sh
7679
emcc --version
7780
emcmake cmake .. -DCMAKE_BUILD_TYPE=Release
78-
emmake make -j2 binaryen_js
79-
cp ./bin/binaryen_js.js ../../index.js
81+
emmake make -j2 binaryen_wasm
82+
cp ./bin/binaryen_wasm.js ../../index.js
8083
cd ../..
8184
- name: "Test binaryen.js"
8285
run: |
8386
node ./tests/sanity
84-
- name: "Build binaryen.wasm"
87+
- name: "Build wasm-opt"
8588
run: |
8689
cd ./binaryen/build
8790
source $HOME/emsdk/emsdk_env.sh
8891
emcc --version
89-
emcmake cmake .. -DCMAKE_BUILD_TYPE=Release
90-
emmake make -j2 binaryen_wasm
91-
cp ./bin/binaryen_wasm.js ../../wasm.js
92+
emmake make -j2 wasm-opt
93+
echo '#!/usr/bin/env node' | cat - ./bin/wasm-opt.js > ../../bin/wasm-opt
9294
cd ../..
93-
- name: "Test binaryen.wasm"
95+
- name: "Test wasm-opt"
9496
run: |
95-
node ./tests/sanity --wasm
96-
- name: "Build wasm-opt"
97+
node ./bin/wasm-opt --help
98+
- name: "Build wasm2js"
9799
run: |
98100
cd ./binaryen/build
99101
source $HOME/emsdk/emsdk_env.sh
100102
emcc --version
101-
emmake make -j2 wasm-opt
102-
echo '#!/usr/bin/env node' | cat - ./bin/wasm-opt.js > ../../bin/wasm-opt
103+
emmake make -j2 wasm2js
104+
echo '#!/usr/bin/env node' | cat - ./bin/wasm2js.js > ../../bin/wasm2js
103105
cd ../..
104-
- name: "Test wasm-opt"
106+
- name: "Test wasm2js"
105107
run: |
106-
node ./bin/wasm-opt --help
108+
node ./bin/wasm2js --help
107109
- name: "Push changes to GitHub"
108110
if: github.event_name == 'schedule' && matrix.emsdk == 'tot'
109111
run: |
110-
git add ./binaryen ./index.js ./wasm.js ./bin/wasm-opt
112+
git add ./binaryen ./index.js ./bin/wasm-opt ./bin/wasm2js
111113
npm version $VERSION --no-git-tag-version --force
112114
if [ $RELEASE ]; then
113115
echo "Committing release ("$VERSION") ..."

README.md

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,8 @@ $> npm install binaryen
1515
```
1616

1717
```js
18-
var binaryen = require("binaryen");
18+
import Binaryen from "binaryen";
19+
const binaryen = await Binaryen();
1920

2021
// Create a module with a single function
2122
var myModule = new binaryen.Module();
@@ -71,6 +72,10 @@ or you can use one of the [previous versions](https://github.com/AssemblyScript/
7172

7273
Replace `VERSION` with a [specific version](https://github.com/AssemblyScript/binaryen.js/releases) or omit it (not recommended in production) to use main/latest.
7374

75+
### Command line
76+
77+
The package includes Node.js builds of [wasm-opt](https://github.com/WebAssembly/binaryen#wasm-opt) and [wasm2js](https://github.com/WebAssembly/binaryen#wasm2js).
78+
7479
API
7580
---
7681

bin/package.json

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
{
2+
"type": "commonjs"
3+
}

bin/wasm-opt

Lines changed: 1 addition & 1 deletion
Large diffs are not rendered by default.

bin/wasm2js

Lines changed: 2 additions & 0 deletions
Large diffs are not rendered by default.

index.d.ts

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,5 @@
11
declare module binaryen {
22

3-
const isReady: boolean;
4-
const ready: Promise<typeof binaryen>;
5-
63
type Type = number;
74

85
const none: Type;
@@ -1829,4 +1826,6 @@ declare module binaryen {
18291826
}
18301827
}
18311828

1832-
export = binaryen;
1829+
declare function Binaryen(): Promise<typeof binaryen>;
1830+
1831+
export default Binaryen;

index.js

Lines changed: 488 additions & 315 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)