Skip to main content

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
})
);