From b6c033f2ba044c3a559cc64be2813d03a1c53369 Mon Sep 17 00:00:00 2001 From: a <a@tuxpa.in> Date: Sat, 11 Nov 2023 07:01:33 -0600 Subject: [PATCH] jx encoder lazy --- pkg/server/server.go | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/pkg/server/server.go b/pkg/server/server.go index 0472147..350bce9 100644 --- a/pkg/server/server.go +++ b/pkg/server/server.go @@ -327,19 +327,23 @@ func (c *callResponder) send(ctx context.Context, env *callEnv) (err error) { } else { e.Raw(cast) } + case func(e *jx.Encoder) error: + err = cast(e) default: err = json.NewEncoder(e).EncodeWithOption(cast, func(eo *json.EncodeOption) { eo.DisableNewline = true }) - if err != nil { - return - } } } else { e.Null() } }) } + if env.err == nil && err != nil { + e.Field("error", func(e *jx.Encoder) { + jsonrpc.EncodeError(e, err) + }) + } }) // a json encoding error here is possibly fatal.... if err != nil { -- GitLab