diff --git a/.gitignore b/.gitignore index a354b92..e86a777 100644 --- a/.gitignore +++ b/.gitignore @@ -5,4 +5,5 @@ .gigaide/ .idea/ .claude/ -CLAUDE.md \ No newline at end of file +CLAUDE.md +test* \ No newline at end of file diff --git a/internal/builtins/http.go b/internal/builtins/http.go index 65dfc46..471cd11 100644 --- a/internal/builtins/http.go +++ b/internal/builtins/http.go @@ -173,10 +173,14 @@ func makeRequest(name, method string, args starlark.Tuple, kwargs []starlark.Tup } func starlarkResponse(res *http.Response) *starlarkstruct.Struct { + reader := newStarlarkReader(res.Body) return starlarkstruct.FromStringDict(starlarkstruct.Default, starlark.StringDict{ "code": starlark.MakeInt(res.StatusCode), "headers": starlarkStringSliceMap(res.Header), - "body": newStarlarkReader(res.Body), + "body": reader, + "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) + }), }) }