From f39513483b1200041a5b5fca86584d0e2cfb67ac Mon Sep 17 00:00:00 2001 From: yusing Date: Sun, 20 Jul 2025 12:46:30 +0800 Subject: [PATCH] refactor(middleware): improve common options handling in apply method --- internal/net/gphttp/middleware/middleware.go | 21 ++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/internal/net/gphttp/middleware/middleware.go b/internal/net/gphttp/middleware/middleware.go index d42d3a9..fdb4b0a 100644 --- a/internal/net/gphttp/middleware/middleware.go +++ b/internal/net/gphttp/middleware/middleware.go @@ -89,16 +89,21 @@ func (m *Middleware) apply(optsRaw OptionsRaw) gperr.Error { if len(optsRaw) == 0 { return nil } - commonOpts := map[string]any{ - "priority": optsRaw["priority"], - "bypass": optsRaw["bypass"], + commonOpts := map[string]any{} + if priority, ok := optsRaw["priority"]; ok { + commonOpts["priority"] = priority } - if err := serialization.MapUnmarshalValidate(commonOpts, &m.commonOptions); err != nil { - return err + if bypass, ok := optsRaw["bypass"]; ok { + commonOpts["bypass"] = bypass } - optsRaw = maps.Clone(optsRaw) - for k := range commonOpts { - delete(optsRaw, k) + if len(commonOpts) > 0 { + if err := serialization.MapUnmarshalValidate(commonOpts, &m.commonOptions); err != nil { + return err + } + optsRaw = maps.Clone(optsRaw) + for k := range commonOpts { + delete(optsRaw, k) + } } return serialization.MapUnmarshalValidate(optsRaw, m.impl) }