#!/bin/sh
# sqldoc — npm/npx launcher for @sqldoc/sqldoc
# Requires Node.js >= 24 for native TypeScript type stripping.
# When installed via npm the package lives under node_modules, where Node
# refuses to strip types. We pre-register a custom ESM loader via --import
# that handles .ts everywhere (same approach as delegate.ts).

set -e

# Check Node version
NODE_MAJOR=$(node -e "process.stdout.write(String(process.versions.node.split('.')[0]))")
if [ "$NODE_MAJOR" -lt 24 ] 2>/dev/null; then
  echo "Error: sqldoc requires Node.js >= 24 (you have $(node --version))." >&2
  echo "Install Node 24+: https://nodejs.org/" >&2
  exit 1
fi

# Resolve the real directory of this script (follows symlinks from npm .bin/)
SCRIPT="$0"
while [ -L "$SCRIPT" ]; do
  DIR="$(cd "$(dirname "$SCRIPT")" && pwd)"
  SCRIPT="$(readlink "$SCRIPT")"
  # Handle relative symlinks
  case "$SCRIPT" in /*) ;; *) SCRIPT="$DIR/$SCRIPT" ;; esac
done
BIN_DIR="$(cd "$(dirname "$SCRIPT")" && pwd)"
ENTRY="$BIN_DIR/../src/index.ts"
LOADER="$BIN_DIR/register-loader.mjs"

exec node --no-warnings --import "$LOADER" "$ENTRY" "$@"
