Skip to content

Commit 34d8dfd

Browse files
committed
Pass response body size from headers to PsrMessageStream
1 parent 394f2c5 commit 34d8dfd

File tree

2 files changed

+9
-3
lines changed

2 files changed

+9
-3
lines changed

src/Internal/PsrMessageStream.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ final class PsrMessageStream implements StreamInterface
1818

1919
private int $position = 0;
2020

21-
public function __construct(private readonly ReadableStream $source)
21+
public function __construct(private readonly ReadableStream $source, private readonly ?int $size = null)
2222
{
2323
}
2424

@@ -64,7 +64,7 @@ public function getMetadata(?string $key = null): ?array
6464

6565
public function getSize(): ?int
6666
{
67-
return null;
67+
return $this->size;
6868
}
6969

7070
public function isReadable(): bool

src/PsrAdapter.php

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,13 @@ public function toPsrResponse(Response $response): PsrResponse
7474
$psrResponse = $psrResponse->withAddedHeader($headerName, $headerValue);
7575
}
7676

77-
return $psrResponse->withBody(new PsrMessageStream($response->getBody()));
77+
$size = (int) $response->getHeader('Content-Length');
78+
79+
if ($size <= 0) {
80+
$size = null;
81+
}
82+
83+
return $psrResponse->withBody(new PsrMessageStream($response->getBody(), $size));
7884
}
7985

8086
/**

0 commit comments

Comments
 (0)