Skip to content

Instantly share code, notes, and snippets.

@colbydauph
Created February 19, 2018 00:50
Show Gist options
  • Save colbydauph/b98a79de28b81c543087b89d46f9e1c5 to your computer and use it in GitHub Desktop.
Save colbydauph/b98a79de28b81c543087b89d46f9e1c5 to your computer and use it in GitHub Desktop.
Hook Write Stream
const hookStreamWrite = (stream, callback) => {
const oldWrite = stream.write;
stream.write = callback((...args) => oldWrite.apply(stream, args));
return () => {
stream.write = oldWrite;
};
};
/* Example */
// 1
console.log('1');
// useful for transforming or redirecting: stdout, stderr
const unhook = hookStreamWrite(process.stdout, (stdout) => (string, encoding, fd) => {
return stdout(`stdout: ${ string }`);
});
// stdout: 2
console.log('2');
unhook();
// 3
console.log('3');
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment