From 7ae31d0ec96ef3d5cfdfffdcd7f2e480a59b5408 Mon Sep 17 00:00:00 2001 From: Juliusz Chroboczek Date: Mon, 13 Jan 2025 15:11:44 +0100 Subject: [PATCH] Make Registry.Build take extra interceptors Make Registry.Build take an optional list of extra interceptors that are added before the ones specified by the registry. --- registry.go | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/registry.go b/registry.go index e36ef6bf..e9451961 100644 --- a/registry.go +++ b/registry.go @@ -14,12 +14,17 @@ func (r *Registry) Add(f Factory) { } // Build constructs a single Interceptor from a InterceptorRegistry -func (r *Registry) Build(id string) (Interceptor, error) { +// The extra interceptors are added to the chain before the ones specified +// by the registry. +func (r *Registry) Build(id string, extra... Interceptor) (Interceptor, error) { if len(r.factories) == 0 { return &NoOp{}, nil } interceptors := []Interceptor{} + + interceptors = append(interceptors, extra...) + for _, f := range r.factories { i, err := f.NewInterceptor(id) if err != nil {