|
@@ -1,7 +1,6 @@
|
|
|
package config
|
|
package config
|
|
|
|
|
|
|
|
import (
|
|
import (
|
|
|
- "encoding/json"
|
|
|
|
|
"errors"
|
|
"errors"
|
|
|
"fmt"
|
|
"fmt"
|
|
|
|
|
|
|
@@ -9,8 +8,6 @@ import (
|
|
|
"git.ikuban.com/server/yaml"
|
|
"git.ikuban.com/server/yaml"
|
|
|
"github.com/elliotchance/orderedmap/v3"
|
|
"github.com/elliotchance/orderedmap/v3"
|
|
|
"github.com/go-kratos/kratos/v2/config"
|
|
"github.com/go-kratos/kratos/v2/config"
|
|
|
- "google.golang.org/protobuf/encoding/protojson"
|
|
|
|
|
- "google.golang.org/protobuf/proto"
|
|
|
|
|
)
|
|
)
|
|
|
|
|
|
|
|
func Init(sources []Source, bc any) error {
|
|
func Init(sources []Source, bc any) error {
|
|
@@ -67,12 +64,12 @@ func Init(sources []Source, bc any) error {
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- b, err := marshalJSON(merged)
|
|
|
|
|
|
|
+ b, err := yaml.Marshal(merged)
|
|
|
if err != nil {
|
|
if err != nil {
|
|
|
return err
|
|
return err
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- err = unmarshalJSON(b, bc)
|
|
|
|
|
|
|
+ err = yaml.Unmarshal(b, bc)
|
|
|
if err != nil {
|
|
if err != nil {
|
|
|
return err
|
|
return err
|
|
|
}
|
|
}
|
|
@@ -87,20 +84,6 @@ func Init(sources []Source, bc any) error {
|
|
|
return nil
|
|
return nil
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
-func marshalJSON(v interface{}) ([]byte, error) {
|
|
|
|
|
- if m, ok := v.(proto.Message); ok {
|
|
|
|
|
- return protojson.MarshalOptions{EmitUnpopulated: true}.Marshal(m)
|
|
|
|
|
- }
|
|
|
|
|
- return json.Marshal(v)
|
|
|
|
|
-}
|
|
|
|
|
-
|
|
|
|
|
-func unmarshalJSON(data []byte, v interface{}) error {
|
|
|
|
|
- if m, ok := v.(proto.Message); ok {
|
|
|
|
|
- return protojson.UnmarshalOptions{DiscardUnknown: true}.Unmarshal(data, m)
|
|
|
|
|
- }
|
|
|
|
|
- return json.Unmarshal(data, v)
|
|
|
|
|
-}
|
|
|
|
|
-
|
|
|
|
|
func convertMap(src interface{}) interface{} {
|
|
func convertMap(src interface{}) interface{} {
|
|
|
switch m := src.(type) {
|
|
switch m := src.(type) {
|
|
|
case map[string]interface{}:
|
|
case map[string]interface{}:
|