Function: when()
when<
TInput,TOutput>(config):ConditionalStep<TInput,TOutput>
Defined in: packages/core/src/pipeline/helpers.ts:156
Create a conditional branching step for pipelines. Evaluates a condition and executes onPass or onFail branch accordingly.
The condition can be:
- String: Natural language condition (auto-creates BaleybotConditional with GPT-4)
- Function: Returns boolean or Promise
- Processable<TInput, boolean>: Returns boolean result
Type Parameters
TInput
TInput
Input type for condition and branches
TOutput
TOutput
Output type from both branches
Parameters
config
WhenConfig<TInput, TOutput>
Configuration object with condition, onPass, and optional onFail
Returns
ConditionalStep<TInput, TOutput>
ConditionalStep object for use in pipelines
Example
// With function condition
const myPipeline = pipeline(
validatePost,
when({
condition: (post) => post.wordCount > 1000,
onPass: publishImmediately,
onFail: scheduleForReview
})
);
// With string condition (uses AI)
const myPipeline = pipeline(
analyzeContent,
when({
condition: 'this content is high quality and ready to publish',
onPass: publishPost,
onFail: flagForReview
})
);
// With BaleybotConditional
const isHighQuality = BaleybotConditional.create({
goal: 'Determine if content meets quality standards'
});
const myPipeline = pipeline(
processContent,
when({
condition: isHighQuality,
onPass: approve,
onFail: reject
})
);
// onFail is optional - input passes through if condition fails
const myPipeline = pipeline(
loadData,
when({
condition: needsEnrichment,
onPass: enrichData
// No onFail - data passes through unchanged
}),
saveData
);