#!/bin/bash set -euo pipefail cd "$(dirname "$0")" if [ -z "${1:-}" ]; then msg="Updates" else msg="$1" fi # Always use the project's TypeScript (global `tsc` may not emit) export PATH="$(pwd)/node_modules/.bin:$PATH" if [ ! -x "./node_modules/.bin/tsc" ]; then echo "Installing dependencies..." bun install fi echo "Typechecking..." tsc -p tsconfig.json --noEmit echo "Testing..." bun test src echo "Compiling..." # Clear emit output AND incremental cache. Otherwise a prior --noEmit run leaves # tsbuildinfo "up to date" and tsc emits nothing after `rm -rf dist`. rm -rf dist tsconfig.tsbuildinfo tsc -p tsconfig.json bun scripts/post-compile.ts for f in dist/index.js dist/index.d.ts dist/base.css; do if [ ! -f "$f" ]; then echo "ERROR: compile failed — $f was not produced" exit 1 fi done echo "Build OK" echo "Publishing package..." git add -A git commit -m "$msg" || true git push || true bun publish echo "Done."