You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
20 lines
498 B
20 lines
498 B
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 |
|
}
|
|
|