@@ -128,15 +128,23 @@ func RegisterWithName(name string) registerOption {
128128 }
129129}
130130
131+ func processRegisterOptions (defaultOptions registerOptions , opts ... registerOption ) (registerOptions , error ) {
132+ options := defaultOptions
133+ for _ , opt := range opts {
134+ if err := opt (& options ); err != nil {
135+ return options , fmt .Errorf ("failed processing options: %w" , err )
136+ }
137+ }
138+ return options , nil
139+ }
140+
131141// RegisterWorkflow adds a workflow function to the registry
132142func (ww * WorkflowWorker ) RegisterWorkflow (w Workflow , opts ... registerOption ) error {
133143 wrappedOrchestration := wrapWorkflow (w )
134144
135- options := registerOptions {}
136- for _ , opt := range opts {
137- if err := opt (& options ); err != nil {
138- return fmt .Errorf ("failed processing options: %w" , err )
139- }
145+ options , err := processRegisterOptions (registerOptions {}, opts ... )
146+ if err != nil {
147+ return err
140148 }
141149
142150 if options .Name == "" {
@@ -170,11 +178,9 @@ func wrapActivity(a Activity) task.Activity {
170178func (ww * WorkflowWorker ) RegisterActivity (a Activity , opts ... registerOption ) error {
171179 wrappedActivity := wrapActivity (a )
172180
173- options := registerOptions {}
174- for _ , opt := range opts {
175- if err := opt (& options ); err != nil {
176- return fmt .Errorf ("failed processing options: %w" , err )
177- }
181+ options , err := processRegisterOptions (registerOptions {}, opts ... )
182+ if err != nil {
183+ return err
178184 }
179185
180186 if options .Name == "" {
0 commit comments