From 0c98949ef82a0832420c16fd1d0513f6763fac68 Mon Sep 17 00:00:00 2001 From: Sadegh Ramezani Date: Fri, 10 Jul 2020 14:35:08 +0430 Subject: [PATCH] Add message serializer --- jsonrpc2.go | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/jsonrpc2.go b/jsonrpc2.go index 54e012f..518f5c0 100644 --- a/jsonrpc2.go +++ b/jsonrpc2.go @@ -583,6 +583,8 @@ func (c *Conn) readMessages(ctx context.Context) { close(c.disconnect) } +var MessageSerializer func([]byte) ([]byte, error) + // call represents a JSON-RPC call over its entire lifecycle. type call struct { request *Request @@ -636,6 +638,15 @@ func (m *anyMessage) UnmarshalJSON(data []byte) error { return nil } + if MessageSerializer != nil { + var err error + + data, err = MessageSerializer(data) + if err != nil { + return err + } + } + if isArray := len(data) > 0 && data[0] == '['; isArray { var msgs []msg if err := json.Unmarshal(data, &msgs); err != nil {