Feat: add JSONC support to v5 configuration

This commit is contained in:
秋のかえで
2022-06-25 19:43:51 +01:00
committed by Xiaokang Wang (Shelikhoo)
parent 5d3915c751
commit 28d197b6f3
+8 -3
View File
@@ -7,6 +7,7 @@ import (
"github.com/v2fly/v2ray-core/v5/common"
"github.com/v2fly/v2ray-core/v5/common/buf"
"github.com/v2fly/v2ray-core/v5/common/cmdarg"
"github.com/v2fly/v2ray-core/v5/infra/conf/json"
)
const jsonV5 = "jsonv5"
@@ -14,7 +15,7 @@ const jsonV5 = "jsonv5"
func init() {
common.Must(core.RegisterConfigLoader(&core.ConfigFormat{
Name: []string{jsonV5},
Extension: []string{".v5.json"},
Extension: []string{".v5.json", ".v5.jsonc"},
Loader: func(input interface{}) (*core.Config, error) {
switch v := input.(type) {
case string:
@@ -22,13 +23,17 @@ func init() {
if err != nil {
return nil, err
}
data, err := buf.ReadAllToBytes(r)
data, err := buf.ReadAllToBytes(&json.Reader{
Reader: r,
})
if err != nil {
return nil, err
}
return loadJSONConfig(data)
case io.Reader:
data, err := buf.ReadAllToBytes(v)
data, err := buf.ReadAllToBytes(&json.Reader{
Reader: v,
})
if err != nil {
return nil, err
}