Test case:
const { Readable } = require('stream');
const { pipeline } = require('stream/promises');
const Dicer = require('dicer');
async function main() {
const r = new Readable({ read() {} });
const d = new Dicer({ boundary: 'a' });
d.on('part', async (part) => {
part.resume();
});
r.push(`--a\r\nA: 1\r\nB: 1\r\n\r\n123\r\n--a\r\n\r\n456\r\n--a--\r\n`);
setImmediate(() => {
r.push(null);
});
const timer = setTimeout(() => {
throw new Error('Should be canceled');
}, 2000);
await pipeline(r, d);
clearTimeout(timer);
}
main();