Function: loop()
loop<
TInput>(config):LoopStep<TInput>
Defined in: packages/core/src/pipeline/helpers.ts:209
Create an iterative loop step that processes input repeatedly until condition is met. The body processor must return the same type as its input.
Use this for iterative refinement, polling, or retry logic.
Type Parameters
TInput
TInput
Input/output type (must remain same through iterations)
Parameters
config
PipelineLoopConfig<TInput>
Configuration object with condition, body, and iteration controls
Returns
LoopStep<TInput>
LoopStep object for use in pipelines
Example
// Iterative content refinement
const refineContent = pipeline(
loadDraft,
loop({
condition: (result, state) => {
return result.qualityScore < 8 && state.iteration < 5;
},
body: improveContentBot,
maxIterations: 5,
onIteration: (result, state) => {
console.log(`Iteration ${state.iteration}: Score ${result.qualityScore}`);
}
}),
publishContent
);
// Polling with timeout
const pollStatus = pipeline(
initiateJob,
loop({
condition: (result) => result.status === 'pending',
body: checkJobStatus,
maxIterations: Infinity,
maxDuration: 60000 // 60 seconds
})
);