feat: internal streams

This commit is contained in:
dumbmoron
2024-04-26 11:53:50 +00:00
parent ff93f7e42f
commit 66e58d21ec
5 changed files with 118 additions and 35 deletions

View File

@@ -0,0 +1,24 @@
import { request } from 'undici'
export async function internalStream(streamInfo, res) {
try {
const req = await request(streamInfo.url, {
headers: streamInfo.headers,
signal: streamInfo.controller.signal,
maxRedirections: 16
});
res.status(req.statusCode);
for (const [ name, value ] of Object.entries(req.headers))
res.setHeader(name, value)
if (req.statusCode < 200 || req.statusCode > 299)
return res.destroy();
req.body.pipe(res);
req.body.on('error', () => res.destroy());
} catch {
streamInfo.controller.abort();
}
}