Skip to content

Примеры

Целевые, готовые к копированию сниппеты для паттернов, которые встречаются часто, но не вписываются в основной обзорный материал на странице Обзор. Каждый файл самодостаточен и снабжён комментариями.

Импортируют "rest-pipeline-js" так же, как это делал бы потребитель пакета (после npm install rest-pipeline-js) — они не запускаются как часть тестового набора или сборки репозитория. Для рабочего интерактивного приложения см. страницу Демо.

ФайлПоказывает
pagination-fanout.tsПараллельный fan-out множества постраничных запросов с ограничением concurrency, вместо открытия сотен соединений одновременно.
pagination-stream.tspaginate()/flattenPages()/paginateAll() — курсорная или offset-пагинация как асинхронный итератор, отдельно или как источник StreamStageConfig.
edge-fetch-adapter.tsКастомный HttpAdapter на нативном fetch для Cloudflare Workers / Deno / других сред без Node-версии axios.
file-upload.tsЗагрузка FormData с onUploadProgress/onDownloadProgress через транспорт axios по умолчанию, плюс набросок реализации прогресса загрузки в кастомном адаптере на fetch.
sse-stream.tsШаг StreamStageConfig, читающий эндпоинт Server-Sent Events кусок за куском.
websocket-stage.tsШаг WebSocketStageConfig поверх постоянного соединения — onOpen/onMessage/onClose/onError, closeOn, и заметка о замене createWebSocket для Node <22.
redis-cache-store.tsCacheStore на основе Redis, чтобы закэшированные ответы были общими для нескольких серверных инстансов, а не жили в памяти одного процесса.
redis-rate-limiter-store.tsRateLimiterStore на основе Redis, чтобы ограничение частоты было общим для серверных инстансов, а не применялось каждым отдельно (что умножает реальный лимит на количество инстансов).
proactive-rate-limit-throttling.tsИспользование rateLimit.onRateLimitHeaders для троттлинга по заголовкам ответа X-RateLimit-*/RateLimit-* ещё до получения 429, вместо реакции только постфактум.
redis-circuit-breaker-store.tsCircuitBreakerStore на основе Redis, чтобы состояние open/closed/half-open было общим для серверных инстансов, а не требовало от каждого своих failureThreshold сбоев для размыкания.
opentelemetry-tracing.tsГенерация заголовка W3C traceparent плюс хук TracingProvider (утиная типизация под Span API OpenTelemetry) для подключения реального бэкенда трассировки, включая корреляцию запросов с runId пайплайна.
idempotent-mutations.tsОтправка заголовка Idempotency-Key на изменяющих запросах, вручную или автогенерируемого RequestExecutor через повторные попытки.
zod-validation.tsАдаптер withZodSchema(), превращающий схему Zod (или структурно совместимую) в PipelineStageConfig.validateInput/validateOutput.
mock-adapter.tscreateMockAdapter() (из rest-pipeline-js/testing) для тестирования кода, использующего этот пакет, без реального backend — сопоставление маршрутов, динамические ответы и последовательности ответов для проверки повторов.
offline-queue.tsHttpConfig.offlineQueue — постановка изменяющих запросов в очередь в офлайне и их повтор (с тем же Idempotency-Key) после восстановления связи, с persistAdapter на основе localStorage.