95f1337fd4
- ui/scripts/generate-api.sh: openapi-typescript@7 над docs/openapi.yaml. - ui/src/api/generated/README.md: правила перегенерации и семантика writeOnly-секретов.
21 lines
783 B
Bash
21 lines
783 B
Bash
#!/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}"
|