Skip to content

Commit 51b842d

Browse files
committed
Extra RegisterOptions processing to a function
1 parent 5fb3c61 commit 51b842d

File tree

1 file changed

+16
-10
lines changed

1 file changed

+16
-10
lines changed

workflow/worker.go

Lines changed: 16 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -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
132142
func (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 {
170178
func (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

Comments
 (0)