UNPKG

piecemeal

Version:

Effortless incrementally deliver your data

24 lines (21 loc) 653 B
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 };