Skip to content

Commit e0bf797

Browse files
authored
Revert "Chrose: Use jsoniter from wrapper (#841)" (#879)
This reverts commit f07f077.
1 parent 14f975a commit e0bf797

File tree

11 files changed

+354
-440
lines changed

11 files changed

+354
-440
lines changed

backend/data.go

Lines changed: 5 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ import (
88
"time"
99

1010
"github.com/grafana/grafana-plugin-sdk-go/data"
11-
sdkjsoniter "github.com/grafana/grafana-plugin-sdk-go/data/utils/jsoniter"
11+
jsoniter "github.com/json-iterator/go"
1212
)
1313

1414
// QueryDataHandler handles data queries.
@@ -116,7 +116,7 @@ type QueryDataResponse struct {
116116

117117
// MarshalJSON writes the results as json
118118
func (r QueryDataResponse) MarshalJSON() ([]byte, error) {
119-
cfg := sdkjsoniter.ConfigCompatibleWithStandardLibrary
119+
cfg := jsoniter.ConfigCompatibleWithStandardLibrary
120120
stream := cfg.BorrowStream(nil)
121121
defer cfg.ReturnStream(stream)
122122

@@ -126,12 +126,9 @@ func (r QueryDataResponse) MarshalJSON() ([]byte, error) {
126126

127127
// UnmarshalJSON will read JSON into a QueryDataResponse
128128
func (r *QueryDataResponse) UnmarshalJSON(b []byte) error {
129-
iter, err := sdkjsoniter.ParseBytes(sdkjsoniter.ConfigDefault, b)
130-
if err != nil {
131-
return err
132-
}
129+
iter := jsoniter.ParseBytes(jsoniter.ConfigDefault, b)
133130
readQueryDataResultsJSON(r, iter)
134-
return iter.ReadError()
131+
return iter.Error
135132
}
136133

137134
// NewQueryDataResponse returns a QueryDataResponse with the Responses property initialized.
@@ -186,7 +183,7 @@ func ErrDataResponseWithSource(status Status, src ErrorSource, message string) D
186183

187184
// MarshalJSON writes the results as json
188185
func (r DataResponse) MarshalJSON() ([]byte, error) {
189-
cfg := sdkjsoniter.ConfigCompatibleWithStandardLibrary
186+
cfg := jsoniter.ConfigCompatibleWithStandardLibrary
190187
stream := cfg.BorrowStream(nil)
191188
defer cfg.ReturnStream(stream)
192189

backend/json.go

Lines changed: 25 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -5,15 +5,13 @@ import (
55
"sort"
66
"unsafe"
77

8-
jsoniter "github.com/json-iterator/go"
9-
108
"github.com/grafana/grafana-plugin-sdk-go/data"
11-
sdkjsoniter "github.com/grafana/grafana-plugin-sdk-go/data/utils/jsoniter"
9+
jsoniter "github.com/json-iterator/go"
1210
)
1311

1412
func init() { //nolint:gochecknoinits
15-
sdkjsoniter.RegisterTypeEncoder("backend.DataResponse", &dataResponseCodec{})
16-
sdkjsoniter.RegisterTypeEncoder("backend.QueryDataResponse", &queryDataResponseCodec{})
13+
jsoniter.RegisterTypeEncoder("backend.DataResponse", &dataResponseCodec{})
14+
jsoniter.RegisterTypeEncoder("backend.QueryDataResponse", &queryDataResponseCodec{})
1715
}
1816

1917
type dataResponseCodec struct{}
@@ -23,7 +21,7 @@ func (codec *dataResponseCodec) IsEmpty(ptr unsafe.Pointer) bool {
2321
return dr.Error == nil && dr.Frames == nil
2422
}
2523

26-
func (codec *dataResponseCodec) Encode(ptr unsafe.Pointer, stream *sdkjsoniter.Stream) {
24+
func (codec *dataResponseCodec) Encode(ptr unsafe.Pointer, stream *jsoniter.Stream) {
2725
dr := (*DataResponse)(ptr)
2826
writeDataResponseJSON(dr, stream)
2927
}
@@ -35,22 +33,22 @@ func (codec *queryDataResponseCodec) IsEmpty(ptr unsafe.Pointer) bool {
3533
return qdr.Responses == nil
3634
}
3735

38-
func (codec *queryDataResponseCodec) Encode(ptr unsafe.Pointer, stream *sdkjsoniter.Stream) {
36+
func (codec *queryDataResponseCodec) Encode(ptr unsafe.Pointer, stream *jsoniter.Stream) {
3937
qdr := (*QueryDataResponse)(ptr)
4038
writeQueryDataResponseJSON(qdr, stream)
4139
}
4240

4341
func (codec *queryDataResponseCodec) Decode(ptr unsafe.Pointer, iter *jsoniter.Iterator) {
4442
qdr := QueryDataResponse{}
45-
readQueryDataResultsJSON(&qdr, sdkjsoniter.NewIterator(iter))
43+
readQueryDataResultsJSON(&qdr, iter)
4644
*((*QueryDataResponse)(ptr)) = qdr
4745
}
4846

49-
// -----------------------------------------------------------------
47+
//-----------------------------------------------------------------
5048
// Private stream readers
51-
// -----------------------------------------------------------------
49+
//-----------------------------------------------------------------
5250

53-
func writeDataResponseJSON(dr *DataResponse, stream *sdkjsoniter.Stream) {
51+
func writeDataResponseJSON(dr *DataResponse, stream *jsoniter.Stream) {
5452
stream.WriteObjectStart()
5553
started := false
5654

@@ -104,7 +102,7 @@ func writeDataResponseJSON(dr *DataResponse, stream *sdkjsoniter.Stream) {
104102
stream.WriteObjectEnd()
105103
}
106104

107-
func writeQueryDataResponseJSON(qdr *QueryDataResponse, stream *sdkjsoniter.Stream) {
105+
func writeQueryDataResponseJSON(qdr *QueryDataResponse, stream *jsoniter.Stream) {
108106
stream.WriteObjectStart()
109107
stream.WriteObjectField("results")
110108
stream.WriteObjectStart()
@@ -133,63 +131,61 @@ func writeQueryDataResponseJSON(qdr *QueryDataResponse, stream *sdkjsoniter.Stre
133131
stream.WriteObjectEnd()
134132
}
135133

136-
// -----------------------------------------------------------------
134+
//-----------------------------------------------------------------
137135
// Private stream readers
138-
// -----------------------------------------------------------------
136+
//-----------------------------------------------------------------
139137

140-
func readQueryDataResultsJSON(qdr *QueryDataResponse, iter *sdkjsoniter.Iterator) {
138+
func readQueryDataResultsJSON(qdr *QueryDataResponse, iter *jsoniter.Iterator) {
141139
found := false
142140

143-
for l1Field, _ := iter.ReadObject(); l1Field != ""; l1Field, _ = iter.ReadObject() {
141+
for l1Field := iter.ReadObject(); l1Field != ""; l1Field = iter.ReadObject() {
144142
switch l1Field {
145143
case "results":
146144
if found {
147-
_ = iter.ReportError("read results", "already found results")
145+
iter.ReportError("read results", "already found results")
148146
return
149147
}
150148
found = true
151149

152150
qdr.Responses = make(Responses)
153151

154-
for l2Field, _ := iter.ReadObject(); l2Field != ""; l2Field, _ = iter.ReadObject() {
152+
for l2Field := iter.ReadObject(); l2Field != ""; l2Field = iter.ReadObject() {
155153
dr := DataResponse{}
156154
readDataResponseJSON(&dr, iter)
157155
qdr.Responses[l2Field] = dr
158156
}
159157

160158
default:
161-
_ = iter.ReportError("bind l1", "unexpected field: "+l1Field)
159+
iter.ReportError("bind l1", "unexpected field: "+l1Field)
162160
return
163161
}
164162
}
165163
}
166164

167-
func readDataResponseJSON(rsp *DataResponse, iter *sdkjsoniter.Iterator) {
168-
for l2Field, _ := iter.ReadObject(); l2Field != ""; l2Field, _ = iter.ReadObject() {
165+
func readDataResponseJSON(rsp *DataResponse, iter *jsoniter.Iterator) {
166+
for l2Field := iter.ReadObject(); l2Field != ""; l2Field = iter.ReadObject() {
169167
switch l2Field {
170168
case "error":
171169
rsp.Error = fmt.Errorf(iter.ReadString())
172170

173171
case "status":
174-
s, _ := iter.ReadInt32()
175-
rsp.Status = Status(s)
172+
rsp.Status = Status(iter.ReadInt32())
176173

177174
case "errorSource":
178-
src, _ := iter.ReadString()
179-
rsp.ErrorSource = ErrorSource(src)
175+
rsp.ErrorSource = ErrorSource(iter.ReadString())
180176

181177
case "frames":
182-
for iter.CanReadArray() {
178+
for iter.ReadArray() {
183179
frame := &data.Frame{}
184-
err := iter.ReadVal(frame)
185-
if err != nil {
180+
iter.ReadVal(frame)
181+
if iter.Error != nil {
186182
return
187183
}
188184
rsp.Frames = append(rsp.Frames, frame)
189185
}
190186

191187
default:
192-
_ = iter.ReportError("bind l2", "unexpected field: "+l2Field)
188+
iter.ReportError("bind l2", "unexpected field: "+l2Field)
193189
return
194190
}
195191
}

data/frame.go

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -19,9 +19,8 @@ import (
1919

2020
"github.com/google/go-cmp/cmp"
2121
"github.com/google/go-cmp/cmp/cmpopts"
22+
jsoniter "github.com/json-iterator/go"
2223
"github.com/olekukonko/tablewriter"
23-
24-
sdkjsoniter "github.com/grafana/grafana-plugin-sdk-go/data/utils/jsoniter"
2524
)
2625

2726
// Frame is a columnar data structure where each column is a Field.
@@ -50,13 +49,13 @@ type Frame struct {
5049

5150
// UnmarshalJSON allows unmarshalling Frame from JSON.
5251
func (f *Frame) UnmarshalJSON(b []byte) error {
53-
iter, _ := sdkjsoniter.ParseBytes(sdkjsoniter.ConfigDefault, b)
52+
iter := jsoniter.ParseBytes(jsoniter.ConfigDefault, b)
5453
return readDataFrameJSON(f, iter)
5554
}
5655

5756
// MarshalJSON marshals Frame to JSON.
5857
func (f *Frame) MarshalJSON() ([]byte, error) {
59-
cfg := sdkjsoniter.ConfigCompatibleWithStandardLibrary
58+
cfg := jsoniter.ConfigCompatibleWithStandardLibrary
6059
stream := cfg.BorrowStream(nil)
6160
defer cfg.ReturnStream(stream)
6261

@@ -76,7 +75,7 @@ func (f *Frame) MarshalJSON() ([]byte, error) {
7675
type Frames []*Frame
7776

7877
func (frames *Frames) MarshalJSON() ([]byte, error) {
79-
cfg := sdkjsoniter.ConfigCompatibleWithStandardLibrary
78+
cfg := jsoniter.ConfigCompatibleWithStandardLibrary
8079
stream := cfg.BorrowStream(nil)
8180
defer cfg.ReturnStream(stream)
8281

@@ -90,7 +89,7 @@ func (frames *Frames) MarshalJSON() ([]byte, error) {
9089

9190
// UnmarshalJSON allows unmarshalling Frame from JSON.
9291
func (frames *Frames) UnmarshalJSON(b []byte) error {
93-
iter, _ := sdkjsoniter.ParseBytes(sdkjsoniter.ConfigDefault, b)
92+
iter := jsoniter.ParseBytes(jsoniter.ConfigDefault, b)
9493
return readDataFramesJSON(frames, iter)
9594
}
9695

0 commit comments

Comments
 (0)