добавлен флаг --now
This commit is contained in:
@@ -178,6 +178,7 @@ func starlarkResponse(res *http.Response) *starlarkstruct.Struct {
|
|||||||
"code": starlark.MakeInt(res.StatusCode),
|
"code": starlark.MakeInt(res.StatusCode),
|
||||||
"headers": starlarkStringSliceMap(res.Header),
|
"headers": starlarkStringSliceMap(res.Header),
|
||||||
"body": reader,
|
"body": reader,
|
||||||
|
"url": starlark.String(res.Request.URL.String()),
|
||||||
"json": starlark.NewBuiltin("response.json", func(thread *starlark.Thread, b *starlark.Builtin, args starlark.Tuple, kwargs []starlark.Tuple) (starlark.Value, error) {
|
"json": starlark.NewBuiltin("response.json", func(thread *starlark.Thread, b *starlark.Builtin, args starlark.Tuple, kwargs []starlark.Tuple) (starlark.Value, error) {
|
||||||
return reader.readJSON(thread, b, args, kwargs)
|
return reader.readJSON(thread, b, args, kwargs)
|
||||||
}),
|
}),
|
||||||
|
@@ -23,8 +23,16 @@ func Convert(v any) (starlark.Value, error) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func convert(val reflect.Value) (starlark.Value, error) {
|
func convert(val reflect.Value) (starlark.Value, error) {
|
||||||
|
// Check for invalid or nil values
|
||||||
|
if !val.IsValid() {
|
||||||
|
return starlark.None, nil
|
||||||
|
}
|
||||||
|
|
||||||
switch val.Kind() {
|
switch val.Kind() {
|
||||||
case reflect.Interface:
|
case reflect.Interface:
|
||||||
|
if val.IsNil() {
|
||||||
|
return starlark.None, nil
|
||||||
|
}
|
||||||
return convert(val.Elem())
|
return convert(val.Elem())
|
||||||
case reflect.Int, reflect.Int64, reflect.Int32, reflect.Int16, reflect.Int8:
|
case reflect.Int, reflect.Int64, reflect.Int32, reflect.Int16, reflect.Int8:
|
||||||
return starlark.MakeInt64(val.Int()), nil
|
return starlark.MakeInt64(val.Int()), nil
|
||||||
@@ -37,9 +45,20 @@ func convert(val reflect.Value) (starlark.Value, error) {
|
|||||||
case reflect.String:
|
case reflect.String:
|
||||||
return starlark.String(val.String()), nil
|
return starlark.String(val.String()), nil
|
||||||
case reflect.Slice, reflect.Array:
|
case reflect.Slice, reflect.Array:
|
||||||
|
if val.IsNil() {
|
||||||
|
return starlark.None, nil
|
||||||
|
}
|
||||||
return convertSlice(val)
|
return convertSlice(val)
|
||||||
case reflect.Map:
|
case reflect.Map:
|
||||||
|
if val.IsNil() {
|
||||||
|
return starlark.None, nil
|
||||||
|
}
|
||||||
return convertMap(val)
|
return convertMap(val)
|
||||||
|
case reflect.Ptr:
|
||||||
|
if val.IsNil() {
|
||||||
|
return starlark.None, nil
|
||||||
|
}
|
||||||
|
return convert(val.Elem())
|
||||||
default:
|
default:
|
||||||
return nil, fmt.Errorf("%w: %s", ErrInvalidType, val.Type())
|
return nil, fmt.Errorf("%w: %s", ErrInvalidType, val.Type())
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user