DefinitelyTyped/types/pump/pump-tests.ts
Jason fcd45613c0 pump: pump should return a single stream instead of an array. (#35238)
* Pump signature now returns a single stream instead of an array of streams.

* pump: Updates version and adds author
2019-05-13 15:18:59 -07:00

55 lines
1.1 KiB
TypeScript

import pump = require('pump');
import { createReadStream, createWriteStream } from 'fs';
import { Transform } from 'stream';
const rs = createReadStream('/dev/random');
const ws = createWriteStream('/dev/null');
function toHex() {
const reverse: Transform = new Transform();
(reverse as any)._transform = (chunk: any, enc: any, callback: any) => {
reverse.push(chunk.toString('hex'));
callback();
};
return reverse;
}
let wsClosed = false;
let rsClosed = false;
let callbackCalled = false;
function check() {
if (wsClosed && rsClosed && callbackCalled) console.log(`pump finished`);
}
ws.on('close', () => {
wsClosed = true;
check();
});
rs.on('close', () => {
rsClosed = true;
check();
});
pump(rs, toHex(), toHex(), toHex(), ws, () => {
callbackCalled = true;
check();
});
setTimeout(() => {
rs.destroy();
}, 1000);
setTimeout(() => {
throw new Error('timeout');
}, 5000);
// $ExpectType Stream
pump(createReadStream('/dev/random'), toHex(), createWriteStream('/dev/null'));
// $ExpectType Stream
pump([createReadStream('/dev/random'), toHex(), createWriteStream('/dev/null')]);