Skip to content

Commit

Permalink
[fix] lib json: upgrade spyzhov/ajson v0.9.6 (#123)
Browse files Browse the repository at this point in the history
* use ajson v0.9.6 to fix

* general go version for actions

* add back go.sum missing lines
  • Loading branch information
hyorigo authored Dec 24, 2024
1 parent 1b7ec70 commit cea71c4
Show file tree
Hide file tree
Showing 4 changed files with 14 additions and 33 deletions.
12 changes: 6 additions & 6 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -29,12 +29,12 @@ jobs:
windows-2022
]
go-version: [
1.18.10,
1.19.13,
1.20.14,
1.21.13,
1.22.9,
1.23.3,
1.18.x,
1.19.x,
1.20.x,
1.21.x,
1.22.x,
1.23.x,
]
permissions:
contents: read
Expand Down
2 changes: 1 addition & 1 deletion go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ require (
github.com/google/uuid v1.6.0
github.com/h2so5/here v0.0.0-20200815043652-5e14eb691fae
github.com/montanaflynn/stats v0.7.1
github.com/spyzhov/ajson v0.9.5
github.com/spyzhov/ajson v0.9.6
go.starlark.net v0.0.0-20240123142251-f86470692795
go.uber.org/atomic v1.11.0
go.uber.org/zap v1.24.0
Expand Down
4 changes: 2 additions & 2 deletions go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -48,8 +48,8 @@ github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINE
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA=
github.com/spyzhov/ajson v0.9.5 h1:/W2YIkLtwQ0W01qABeX89sXK1AV4+bUhc/3uLj3MToo=
github.com/spyzhov/ajson v0.9.5/go.mod h1:a6oSw0MMb7Z5aD2tPoPO+jq11ETKgXUr2XktHdT8Wt8=
github.com/spyzhov/ajson v0.9.6 h1:iJRDaLa+GjhCDAt1yFtU/LKMtLtsNVKkxqlpvrHHlpQ=
github.com/spyzhov/ajson v0.9.6/go.mod h1:a6oSw0MMb7Z5aD2tPoPO+jq11ETKgXUr2XktHdT8Wt8=
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw=
github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI=
Expand Down
29 changes: 5 additions & 24 deletions lib/json/json.go
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,6 @@ import (
"encoding/json"
"fmt"
"math"
"sort"
"strconv"
"sync"

itn "github.com/1set/starlet/dataconv"
Expand Down Expand Up @@ -290,29 +288,12 @@ func ajsonNodeToStarlarkValue(node *ajson.Node) (starlark.Value, error) {
}
return dict, nil
case ajson.Array:
// Use keys and indices to avoid relying on invalid index pointers
keys := node.Keys()
if len(keys) == 0 {
return starlark.NewList(nil), nil
}
indices := make([]int, len(keys))
indexMap := make(map[int]*ajson.Node)
for i, key := range keys {
idx, err := strconv.Atoi(key)
if err != nil {
return nil, fmt.Errorf("invalid array index: %v", err)
}
indices[i] = idx
child, err := node.GetIndex(idx)
if err != nil {
return nil, err
}
indexMap[idx] = child
elements, err := node.GetArray()
if err != nil {
return nil, err
}
sort.Ints(indices)
vals := make([]starlark.Value, len(indices))
for i, idx := range indices {
elem := indexMap[idx]
vals := make([]starlark.Value, len(elements))
for i, elem := range elements {
val, err := ajsonNodeToStarlarkValue(elem)
if err != nil {
return nil, err
Expand Down

0 comments on commit cea71c4

Please sign in to comment.