diff options
author | 2023-08-22 00:30:34 -0300 | |
---|---|---|
committer | 2023-08-21 20:30:34 -0700 | |
commit | 9027484ae1a9eaf9769d79828db48de66450a3fc (patch) | |
tree | e6b679132046bbc0ef254a170c0b0ec3030d3fa2 /src/cli/create_command.zig | |
parent | 91eacade975a522f7ad3d62185ff8adace3aad97 (diff) | |
download | bun-9027484ae1a9eaf9769d79828db48de66450a3fc.tar.gz bun-9027484ae1a9eaf9769d79828db48de66450a3fc.tar.zst bun-9027484ae1a9eaf9769d79828db48de66450a3fc.zip |
fetch(stream) add stream support for compressed and uncompressed data (#4127)
* streams non compressed data in 64kb chunks (at least)
* fmt
* wip remove pause
* fix default streaming and buffering
* fix atomic lags
* fix size
* make chunked encoding work again (WIP streaming chunked)
* WIP: chunked encoding streaming
* fix end of streamings
* working streaming + compression
* add fixes + tests
* fmt + fix proxy
* fix oopsies
* codegen after merge
* fmt + fixes
* more fixes
* more fixes and logs
* avoid double free
* check empty before pop
* check empty on pop
* fix copy to real when complete
* remove unnecessary logs
* better has_schedule_callback swap, body locked size helper, remove isEmpty from unbounded_queue pop
* fix response ref, fix body_size
* add deflate support, fix error throw, add more tests
* codegen after merge
* remove logs, add connection close test
* fix macOS build
* fix redirect error option
* make body_size more clear
* support new Reponse(response)
* toString DOMWrapper objects properly instead of supporting response in Response constructor
* ignore headers with no name, add more tests
* oops
* handle transform with fetch
* add gz image stream test
* remove duplicate test
* fix missing chunk on macOS under pressure
* oops include all OS
* some fixes
* compare buffers instead of sizes
* refactor err.err and protect it
Diffstat (limited to 'src/cli/create_command.zig')
-rw-r--r-- | src/cli/create_command.zig | 56 |
1 files changed, 52 insertions, 4 deletions
diff --git a/src/cli/create_command.zig b/src/cli/create_command.zig index 544329a98..284de1fd5 100644 --- a/src/cli/create_command.zig +++ b/src/cli/create_command.zig @@ -1852,7 +1852,19 @@ pub const Example = struct { // ensure very stable memory address var async_http: *HTTP.AsyncHTTP = ctx.allocator.create(HTTP.AsyncHTTP) catch unreachable; - async_http.* = HTTP.AsyncHTTP.initSync(ctx.allocator, .GET, api_url, header_entries, headers_buf, mutable, "", 60 * std.time.ns_per_min, http_proxy, null, HTTP.FetchRedirect.follow); + async_http.* = HTTP.AsyncHTTP.initSync( + ctx.allocator, + .GET, + api_url, + header_entries, + headers_buf, + mutable, + "", + 60 * std.time.ns_per_min, + http_proxy, + null, + HTTP.FetchRedirect.follow, + ); async_http.client.progress_node = progress; const response = try async_http.sendSync(true); @@ -1916,7 +1928,19 @@ pub const Example = struct { // ensure very stable memory address var async_http: *HTTP.AsyncHTTP = ctx.allocator.create(HTTP.AsyncHTTP) catch unreachable; - async_http.* = HTTP.AsyncHTTP.initSync(ctx.allocator, .GET, url, .{}, "", mutable, "", 60 * std.time.ns_per_min, http_proxy, null, HTTP.FetchRedirect.follow); + async_http.* = HTTP.AsyncHTTP.initSync( + ctx.allocator, + .GET, + url, + .{}, + "", + mutable, + "", + 60 * std.time.ns_per_min, + http_proxy, + null, + HTTP.FetchRedirect.follow, + ); async_http.client.progress_node = progress; var response = try async_http.sendSync(true); @@ -1992,7 +2016,19 @@ pub const Example = struct { http_proxy = env_loader.getHttpProxy(parsed_tarball_url); - async_http.* = HTTP.AsyncHTTP.initSync(ctx.allocator, .GET, parsed_tarball_url, .{}, "", mutable, "", 60 * std.time.ns_per_min, http_proxy, null, HTTP.FetchRedirect.follow); + async_http.* = HTTP.AsyncHTTP.initSync( + ctx.allocator, + .GET, + parsed_tarball_url, + .{}, + "", + mutable, + "", + 60 * std.time.ns_per_min, + http_proxy, + null, + HTTP.FetchRedirect.follow, + ); async_http.client.progress_node = progress; refresher.maybeRefresh(); @@ -2022,7 +2058,19 @@ pub const Example = struct { var mutable = try ctx.allocator.create(MutableString); mutable.* = try MutableString.init(ctx.allocator, 2048); - async_http.* = HTTP.AsyncHTTP.initSync(ctx.allocator, .GET, url, .{}, "", mutable, "", 60 * std.time.ns_per_min, http_proxy, null, HTTP.FetchRedirect.follow); + async_http.* = HTTP.AsyncHTTP.initSync( + ctx.allocator, + .GET, + url, + .{}, + "", + mutable, + "", + 60 * std.time.ns_per_min, + http_proxy, + null, + HTTP.FetchRedirect.follow, + ); if (Output.enable_ansi_colors) { async_http.client.progress_node = progress_node; |