#!/usr/bin/env bash # Генерация TypeScript-типов клиента из контракта (docs/openapi.yaml, issue #19). # # Требуется Node.js >= 20 (генератор запускается через npx, версия запинена). # Результат коммитится в ui/src/api/generated/schema.d.ts и проверяется в CI. set -euo pipefail root_dir="$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." && pwd)" spec="${root_dir}/docs/openapi.yaml" out_dir="${root_dir}/ui/src/api/generated" generator="openapi-typescript@7" if [[ ! -f "${spec}" ]]; then echo "contract not found: ${spec}" >&2 exit 1 fi mkdir -p "${out_dir}" npx --yes "${generator}" "${spec}" -o "${out_dir}/schema.d.ts" echo "OK: ${out_dir}/schema.d.ts <- ${spec}"