aboutsummaryrefslogtreecommitdiff
path: root/src/cli/create_command.zig
diff options
context:
space:
mode:
authorGravatar Ciro Spaciari <ciro.spaciari@gmail.com> 2023-08-22 00:30:34 -0300
committerGravatar GitHub <noreply@github.com> 2023-08-21 20:30:34 -0700
commit9027484ae1a9eaf9769d79828db48de66450a3fc (patch)
treee6b679132046bbc0ef254a170c0b0ec3030d3fa2 /src/cli/create_command.zig
parent91eacade975a522f7ad3d62185ff8adace3aad97 (diff)
downloadbun-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.zig56
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;