-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathpublish.sh
executable file
·33 lines (26 loc) · 966 Bytes
/
publish.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#!/usr/bin/env bash
set -e
# Check if jq is installed
if ! [ -x "$(command -v jq)" ]; then
echo "jq is not installed" >& 2
exit 1
fi
# Clean previous packages
if [ -d "pkg" ]; then
rm -rf pkg
fi
if [ -d "pkg-node" ]; then
rm -rf pkg-node
fi
# Build for both targets
wasm-pack build --scope people_and_robots --target nodejs -d pkg-node -- --features jsbindings
wasm-pack build --scope people_and_robots --target bundler -d pkg -- --features jsbindings
# Get the package name
PKG_NAME=$(jq -r .name pkg/package.json | sed 's/\-/_/g')
# Merge nodejs & browser packages
cp "pkg-node/${PKG_NAME##*/}.js" "pkg/${PKG_NAME##*/}_main.js"
sed "s/require[\(]'\.\/${PKG_NAME##*/}/require\('\.\/${PKG_NAME##*/}_main/" "pkg-node/${PKG_NAME##*/}_bg.js" > "pkg/${PKG_NAME##*/}_bg.js"
jq ".files += [\"${PKG_NAME##*/}_bg.js\"]" pkg/package.json \
| jq ".main = \"${PKG_NAME##*/}_main.js\"" > pkg/temp.json
mv pkg/temp.json pkg/package.json
rm -rf pkg-node