isWritableStream
Checks if the given argument is a writable stream.
- Check if the value is different from
null. - Use
typeofto check if the value is of typeobjectand thepipeproperty is of typefunction. - Additionally check if the
typeofthe_writeand_writableStateproperties arefunctionandobjectrespectively.
const isWritableStream = val =>
val !== null &&
typeof val === 'object' &&
typeof val.pipe === 'function' &&
typeof val._write === 'function' &&
typeof val._writableState === 'object';const fs = require('fs');
isWritableStream(fs.createWriteStream('test.txt')); // true