Skip to content

Commit bf44149

Browse files
jesseskinnerkjmph
authored andcommitted
Add test for async iterator body to adapter-node & handle empty headers
1 parent 016d92b commit bf44149

File tree

2 files changed

+19
-1
lines changed

2 files changed

+19
-1
lines changed

packages/adapter-node/src/kit-middleware.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ export function create_kit_middleware({ render }) {
4141
typeof rendered.body === 'object' &&
4242
typeof rendered.body[Symbol.asyncIterator] === 'function'
4343
) {
44-
const flush = compressible(rendered.headers['content-type']) ? res.flush : null;
44+
const flush = rendered.headers && compressible(rendered.headers['content-type']) ? res.flush : null;
4545
const data = Readable.from(rendered.body);
4646
data.on('error', () => res.end());
4747
if (flush) {

packages/adapter-node/tests/smoke.js

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,4 +68,22 @@ test('serve a 400 when we have a malformed url', async () => {
6868
server.server.close();
6969
});
7070

71+
test('handles an async iterator body', async () => {
72+
const server = await startServer({
73+
render: (incoming) => {
74+
return {
75+
status: 200,
76+
body: (async function* () {
77+
yield 'foo';
78+
yield 'bar';
79+
})()
80+
};
81+
}
82+
});
83+
84+
const res = await fetch(`http://localhost:${PORT}`);
85+
assert.equal(await res.text(), 'foobar');
86+
server.server.close();
87+
});
88+
7189
test.run();

0 commit comments

Comments
 (0)