Function: loop()
loop<
TInput>(config):Processable<TInput,TInput>
Defined in: packages/core/src/pipeline/iteration.ts:60
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
Processable<TInput, TInput>
Processable that iterates until the condition stops it
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
})
);