Add isStream

This commit is contained in:
Angelos Chalaris
2018-10-01 20:12:19 +03:00
parent 3127f816ae
commit 474aaffbbf
4 changed files with 30 additions and 0 deletions

14
snippets/isStream.md Normal file
View File

@ -0,0 +1,14 @@
### isStream
Checks if the given argument is a stream.
Check if the value is different from `null`, use `typeof` to check if a value is of type `object` and the `pipe` property is of type `function`.
```js
const isStream = val => val !== null && typeof val === 'object' && typeof val.pipe === 'function';
```
```js
const fs = require('fs');
isStream(fs.createReadStream('test.txt')); // true
```

View File

@ -154,6 +154,7 @@ isPrimitive:type,function,array,string,intermediate
isPromiseLike:type,function,promise,intermediate
isSameDate:date,utility,beginner
isSorted:array,intermediate
isStream:type,stream,intermediate
isString:type,string,beginner
isSymbol:type,beginner
isTravisCI:node,intermediate

View File

@ -0,0 +1,2 @@
const isStream = val => val !== null && typeof val === 'object' && typeof val.pipe === 'function';
module.exports = isStream;

View File

@ -0,0 +1,13 @@
const expect = require('expect');
const isStream = require('./isStream.js');
const fs = require('fs');
test('isStream is a Function', () => {
expect(isStream).toBeInstanceOf(Function);
});
test('isStream returns true for streams', () => {
expect(isStream(fs.createReadStream('isStream.js'))).toBeTruthy();
});
test('isStream returns false for non-streams', () => {
expect(isStream({})).toBeFalsy();
});