mirror of
https://github.com/sourcegraph/jsonrpc2.git
synced 2026-06-16 04:04:56 +02:00
Add message serializer
This commit is contained in:
parent
15c2290dcb
commit
0c98949ef8
1 changed files with 11 additions and 0 deletions
11
jsonrpc2.go
11
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 {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue