From a53152296e7a3741b848cd3e55930ac55795350a 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 after the ones specified by the registry. --- registry.go | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/registry.go b/registry.go index e36ef6bf..7e37bff2 100644 --- a/registry.go +++ b/registry.go @@ -14,7 +14,9 @@ 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 after the ones specified +// by the registry. +func (r *Registry) Build(id string, extra... Interceptor) (Interceptor, error) { if len(r.factories) == 0 { return &NoOp{}, nil } @@ -29,5 +31,7 @@ func (r *Registry) Build(id string) (Interceptor, error) { interceptors = append(interceptors, i) } + interceptors = append(interceptors, extra...) + return NewChain(interceptors), nil }