21 lines
		
	
	
		
			498 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			21 lines
		
	
	
		
			498 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| module.exports = shift
 | |
| 
 | |
| function shift (stream) {
 | |
|   var rs = stream._readableState
 | |
|   if (!rs) return null
 | |
|   return (rs.objectMode || typeof stream._duplexState === 'number') ? stream.read() : stream.read(getStateLength(rs))
 | |
| }
 | |
| 
 | |
| function getStateLength (state) {
 | |
|   if (state.buffer.length) {
 | |
|     // Since node 6.3.0 state.buffer is a BufferList not an array
 | |
|     if (state.buffer.head) {
 | |
|       return state.buffer.head.data.length
 | |
|     }
 | |
| 
 | |
|     return state.buffer[0].length
 | |
|   }
 | |
| 
 | |
|   return state.length
 | |
| }
 |