22 lines
		
	
	
		
			800 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
		
		
			
		
	
	
			22 lines
		
	
	
		
			800 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
|  | 'use strict'; | ||
|  | 
 | ||
|  | var isStream = module.exports = function (stream) { | ||
|  | 	return stream !== null && typeof stream === 'object' && typeof stream.pipe === 'function'; | ||
|  | }; | ||
|  | 
 | ||
|  | isStream.writable = function (stream) { | ||
|  | 	return isStream(stream) && stream.writable !== false && typeof stream._write === 'function' && typeof stream._writableState === 'object'; | ||
|  | }; | ||
|  | 
 | ||
|  | isStream.readable = function (stream) { | ||
|  | 	return isStream(stream) && stream.readable !== false && typeof stream._read === 'function' && typeof stream._readableState === 'object'; | ||
|  | }; | ||
|  | 
 | ||
|  | isStream.duplex = function (stream) { | ||
|  | 	return isStream.writable(stream) && isStream.readable(stream); | ||
|  | }; | ||
|  | 
 | ||
|  | isStream.transform = function (stream) { | ||
|  | 	return isStream.duplex(stream) && typeof stream._transform === 'function' && typeof stream._transformState === 'object'; | ||
|  | }; |