Skip to content

Интеграция с Vue

Composables для реактивного использования PipelineOrchestrator и createRestClient() в Vue 3. Импортируйте из rest-pipeline-js/vue (реэкспортирует и базовую точку входа, так что достаточно одного импорта на оба случая).

vue
<script setup>
import {
  PipelineOrchestrator,
  usePipelineProgressVue,
  usePipelineRunVue,
} from 'rest-pipeline-js/vue'

const orchestrator = new PipelineOrchestrator({
  config: {
    stages: [/* ... */],
  },
})
const progress = usePipelineProgressVue(orchestrator)
const { run, running, result, error, abort, pause, resume, rerunStep } =
  usePipelineRunVue(orchestrator)
</script>

<template>
  <div>
    <div>Current stage: {{ progress.currentStage }}</div>
    <button @click="run()" :disabled="running">Start</button>
    <button @click="abort()" :disabled="!running">Abort</button>
    <button @click="pause()">Pause</button>
    <button @click="resume()">Resume</button>
    <div v-if="result">Done: {{ result }}</div>
    <div v-if="error">Error: {{ error.message }}</div>
  </div>
</template>

usePipelineRunVue(orchestrator)

Запуск пайплайна и реактивное отслеживание его статуса/результата.

Параметры

orchestrator: PipelineOrchestrator

Возвращает

{ run, running, result, error, stageResults, abort, pause, resume, rerunStep, clearStageResults }

running/result/error/stageResults — это Ref; run/abort/pause/resume/rerunStep/clearStageResults напрямую вызывают соответствующий метод PipelineOrchestrator, а run/abort дополнительно обновляют реактивное состояние выше.

usePipelineProgressVue(orchestrator)

Реактивный прогресс пайплайна.

Параметры

orchestrator: PipelineOrchestrator

Возвращает

Ref<PipelineProgress> — обновляется при каждом коллбэке orchestrator.subscribeProgress().

usePipelineStageResultVue(orchestrator, stepKey)

Реактивный результат одного конкретного этапа — обновляется при каждом изменении stageResults, а не только один раз.

Параметры

  • orchestrator: PipelineOrchestrator
  • stepKey: string — ключ этапа для наблюдения

Возвращает

Ref<PipelineStepResult | null>

ts
const userResult = usePipelineStageResultVue(orchestrator, 'fetchUser')
// userResult.value?.status === "success"
// userResult.value?.data — данные этапа

usePipelineStepEventVue(orchestrator, stepKey, eventType)

Подписка на конкретное событие шага (success/error/progress).

Параметры

  • orchestrator: PipelineOrchestrator
  • stepKey: string
  • eventType: "success" | "error" | "progress"

Возвращает

Ref<any> — последняя полезная нагрузка события.

usePipelineLogsVue(orchestrator)

Реактивные логи пайплайна.

Параметры

orchestrator: PipelineOrchestrator

Возвращает

Ref<log[]> — обновляется при каждом событии "log".

useRerunPipelineStepVue(orchestrator)

Связанный rerunStep для одного оркестратора, удобно передавать напрямую как обработчик события.

Параметры

orchestrator: PipelineOrchestrator

Возвращает

(stepKey: string, options?) => Promise<...>orchestrator.rerunStep, привязанный к orchestrator.

useRestClientVue(config)

Реактивный, мемоизированный RestClient — пересчитывается только при изменении config.

Параметры

config: HttpConfig — та же форма, что и у конфигурации createRestClient().

Возвращает

ComputedRef<RestClient>