chore(ui): скрипт генерации TS-клиента из OpenAPI (Refs #19)
contract-openapi / openapi-contract (push) Has been cancelled
contract-openapi / ts-client-is-current (push) Has been cancelled

- ui/scripts/generate-api.sh: openapi-typescript@7 над docs/openapi.yaml.
- ui/src/api/generated/README.md: правила перегенерации и семантика writeOnly-секретов.
This commit is contained in:
2026-10-22 00:23:16 +03:00
parent 3dac7e730a
commit 95f1337fd4
2 changed files with 47 additions and 0 deletions
+20
View File
@@ -0,0 +1,20 @@
#!/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}"