in branch.go [172:201]
func (s *SwitchBranch[T]) AddToWorkflow() map[Steper]*StepConfig {
steps := Steps()
cases := []Steper{}
for step := range s.CasesToCheck {
step := step
cases = append(cases, step)
steps.Merge(
Steps(step).
DependsOn(s.Target).
When(s.isCase(step)).
BeforeStep(func(ctx context.Context, step Steper) (context.Context, error) {
for c, check := range s.CasesToCheck {
if HasStep(step, c) && check.Error != nil {
return ctx, check.Error
}
}
return ctx, nil
}),
)
}
if s.DefaultStep != nil {
steps.Merge(
Steps(s.DefaultStep...).
DependsOn(s.Target).
DependsOn(cases...).
When(s.isDefault),
)
}
return steps.AddToWorkflow()
}