prysm-pulse/shared/testutil/json_to_pb_converter.go
terence tsao 1b5b8a57e0 Remove unused proto schemas (#3005)
* Update io_kubernetes_build commit hash to 1246899

* Update dependency build_bazel_rules_nodejs to v0.33.1

* Update dependency com_github_hashicorp_golang_lru to v0.5.1

* Update libp2p

* Update io_bazel_rules_k8s commit hash to e68d5d7

* Starting to remove old protos

* Bazel build proto passes

* Fixing pb version

* Cleaned up core package

* Fixing tests

* 6 tests failing

* Update proto bugs

* Fixed incorrect validator ordering proto

* Sync with master

* Update go-ssz commit

* Removed bad copies from v1alpha1 folder

* add json spec json to pb handler

* add nested proto example

* proto/testing test works

* fix refactoring build failures

* use merged ssz

* push latest changes

* used forked json encoding

* used forked json encoding

* fix warning

* fix build issues

* fix test and lint

* fix build

* lint
2019-07-22 10:03:57 -04:00

38 lines
808 B
Go

package testutil
import (
"github.com/ghodss/yaml"
"github.com/gogo/protobuf/proto"
jsoniter "github.com/json-iterator/go"
)
var json = jsoniter.Config{
EscapeHTML: true,
SortMapKeys: true,
ValidateJsonRawMessage: true,
TagKey: "spec-name",
}.Froze()
// ConvertToPb converts some JSON compatible struct to given protobuf.
func ConvertToPb(i interface{}, p proto.Message) error {
b, err := json.Marshal(i)
if err != nil {
return err
}
err = json.Unmarshal(b, p)
if err != nil {
return err
}
return nil
}
// UnmarshalYaml using a customized json encoder that supports "spec-name"
// override tag.
func UnmarshalYaml(y []byte, dest interface{}) error {
j, err := yaml.YAMLToJSON(y)
if err != nil {
return err
}
return json.Unmarshal(j, dest)
}