Интеграция с React
Хуки для использования PipelineOrchestrator и createRestClient() в React. Импортируйте из rest-pipeline-js/react (реэкспортирует и базовую точку входа, так что достаточно одного импорта на оба случая).
import { useRef } from 'react'
import {
PipelineOrchestrator,
usePipelineProgressReact,
usePipelineRunReact,
} from 'rest-pipeline-js/react'
const orchestrator = new PipelineOrchestrator({
config: {
stages: [/* ... */],
},
})
export function PipelineComponent() {
const progress = usePipelineProgressReact(orchestrator)
const [run, { running, result, error, abort, pause, resume, rerunStep, clearStageResults }] =
usePipelineRunReact(orchestrator)
return (
<div>
<div>Current stage: {progress.currentStage}</div>
<button onClick={() => run()} disabled={running}>
Start
</button>
<button onClick={() => abort()} disabled={!running}>
Abort
</button>
<button onClick={() => pause()}>Pause</button>
<button onClick={() => resume()}>Resume</button>
{result && <div>Done: {JSON.stringify(result)}</div>}
{error && <div>Error: {error.message}</div>}
</div>
)
}usePipelineRunReact(orchestrator)
Запуск пайплайна и отслеживание его статуса/результата.
Параметры
orchestrator: PipelineOrchestrator
Возвращает
[run, { running, result, error, stageResults, abort, pause, resume, rerunStep, clearStageResults }]
Кортеж, повторяющий соглашение [state, actions] хуков вроде useReducer. run/abort/pause/resume/rerunStep/clearStageResults стабильны (обёрнуты в useCallback) — их можно безопасно передавать напрямую как обработчики событий без лишних перерендеров.
usePipelineProgressReact(orchestrator)
Прогресс пайплайна как React-состояние.
Параметры
orchestrator: PipelineOrchestrator
Возвращает
PipelineProgress
usePipelineStageResultReact(orchestrator, stepKey)
Результат одного конкретного этапа — перерендер при каждом изменении stageResults, а не только один раз.
Параметры
orchestrator: PipelineOrchestratorstepKey: string— ключ этапа для наблюдения
Возвращает
PipelineStepResult | null
usePipelineStepEventReact(orchestrator, stepKey, eventType)
Подписка на конкретное событие шага (success/error/progress).
Параметры
orchestrator: PipelineOrchestratorstepKey: stringeventType: "success" | "error" | "progress"
Возвращает
any — последняя полезная нагрузка события.
usePipelineLogsReact(orchestrator)
Логи пайплайна как React-состояние.
Параметры
orchestrator: PipelineOrchestrator
Возвращает
log[]
useRerunPipelineStepReact(orchestrator)
Связанный rerunStep для одного оркестратора, удобно передавать напрямую как обработчик события.
Параметры
orchestrator: PipelineOrchestrator
Возвращает
(stepKey: string, options?) => Promise<...> — orchestrator.rerunStep, привязанный к orchestrator.
useRestClientReact(config)
Мемоизированный RestClient — пересоздаётся при новой ссылке на объект config.
Параметры
config: HttpConfig — та же форма, что и у конфигурации createRestClient(). Мемоизируйте его сами (useMemo/useState/константа модуля), чтобы не пересоздавать на каждом рендере.
Возвращает
RestClient