piyoparse 0.1.3

Parser for PiyoLog export files
Documentation
set shell := ["bash", "-euo", "pipefail", "-c"]

fmt-check:
    cargo fmt --check

clippy:
    cargo clippy --all-targets --features wasm -- -D warnings

test-rust:
    cargo test
    cargo test --features wasm

check-wasm:
    cargo check --target wasm32-unknown-unknown --features wasm

install-js-deps:
    npm ci --prefix tests

build-npm:
    node scripts/build-npm-package.mjs

test-js:
    just install-js-deps
    node scripts/build-npm-package.mjs --link-dir tests/node_modules
    npm --prefix tests test

test:
    just test-rust
    just test-js

check:
    just fmt-check
    just clippy
    just check-wasm

check-release-version tag:
    #!/usr/bin/env bash
    set -euo pipefail
    crate_version="$(sed -n 's/^version = "\(.*\)"/\1/p' Cargo.toml | head -n 1)"
    tag_version="{{tag}}"
    tag_version="${tag_version#v}"
    if [ "$crate_version" != "$tag_version" ]; then
      echo "::error::Tag {{tag}} does not match Cargo.toml version ${crate_version}"
      exit 1
    fi

check-npm-package tag:
    node -e 'const pkg = require("./pkg/package.json"); const tagVersion = process.argv[1].replace(/^v/, ""); if (pkg.name !== "@necocen/piyoparse") throw new Error(`unexpected package name: ${pkg.name}`); if (pkg.version !== tagVersion) throw new Error(`npm package version ${pkg.version} does not match tag ${process.argv[1]}`);' "{{tag}}"