piecemeal
Version:
Effortless incrementally deliver your data
24 lines (21 loc) • 653 B
JavaScript
import { generate } from 'piecemeal';
const stream = (data, options = {}) => {
const boundary = options.boundary || '-';
const pipe = async (res) => {
res.setHeader('connection', 'keep-alive');
res.setHeader('content-type', `multipart/mixed;boundary="${boundary}"`);
res.setHeader('transfer-encoding', 'chunked');
let ended = false;
res.once('close', () => (ended = true));
await generate(data, boundary, res.write.bind(res), {
get aborted() {
return ended;
},
});
res.end();
};
return {
pipe,
};
};
export { stream };