#!/bin/bash set -e # project_root DIR="$(pwd)" WASM="${DIR}"/wasm WASM_WWW="${WASM}"/www WASM_WWW_BENCH="${WASM}"/www_bench WASM_NODEJS_PKG="${WASM}"/nodejs_pkg WASM_WEB_PKG="${WASM}"/web_pkg WASM_TEST="${WASM}"/tests DOCS="${DIR}"/docs DOCS_BENCH="${DOCS}"/bench __msg () { echo ">>>>>>>>>>$1<<<<<<<<<<" } __cargo_clean () { rm -f "${DIR}"/Cargo.lock rm -f "${WASM}"/Cargo.lock cd "${WASM}" && cargo clean && \ cd "${DIR}" && cargo clean } echo __msg "clean wasm" rm -rf \ "${WASM_NODEJS_PKG}" \ "${WASM_WEB_PKG}" \ "${WASM_WWW}"/dist \ "${WASM_WWW}"/node_modules \ "${WASM_WWW}"/package-lock.json \ "${WASM_WWW_BENCH}"/dist \ "${WASM_WWW_BENCH}"/node_modules \ "${WASM_WWW_BENCH}"/package-lock.json \ "${WASM_TEST}"/node_modules \ "${WASM_TEST}"/package-lock.json __msg "clean cargo clean" __cargo_clean echo wasm_pack_version=$(wasm-pack -V) __msg "wasm-pack: ${wasm_pack_version}" echo __msg "wasm-pack nodejs" cd "${WASM}" && wasm-pack build --release --target "nodejs" --out-dir "${WASM_NODEJS_PKG}" __msg "npm install: wasm test" cd "${WASM_TEST}" && npm install "${WASM_NODEJS_PKG}" && npm install echo __msg "wasm test" cd "${WASM_TEST}" && npm test if [ "$1" = "docs" ]; then echo __msg "wasm-pack web" cd "${WASM}" && wasm-pack build --release --out-dir "${WASM_WEB_PKG}" echo __msg "jsonpath-wasm npm link" cd "${WASM_WEB_PKG}" && npm link __msg "npm install: wasm" cd "${WASM_WWW}" && npm install __msg "npm install: wasm_bench" cd "${WASM_WWW_BENCH}" && npm install echo __msg "link" cd "${WASM_WWW}" && npm link jsonpath-wasm cd "${WASM_WWW_BENCH}" && npm link jsonpath-wasm echo __msg "docs" cd "${WASM_WWW}" && \ npm run build && rm -f "${DOCS}"/*.js "${DOCS}"/*.wasm "${DOCS}"/*.html && \ cp "${WASM_WWW}"/dist/*.* "${DOCS}"/ cd "${WASM_WWW_BENCH}" && \ npm run build && rm -f "${DOCS_BENCH}"/*.js "${DOCS_BENCH}"/*.wasm "${DOCS_BENCH}"/*.html && \ cp "${WASM_WWW_BENCH}"/dist/*.* "${DOCS_BENCH}"/ fi __msg "wasm done"