pax_global_header00006660000000000000000000000064145520234750014521gustar00rootroot0000000000000052 comment=959eb6839553630aa979d33ffc80793f07b8ba09 stream-shift-1.0.3/000077500000000000000000000000001455202347500141305ustar00rootroot00000000000000stream-shift-1.0.3/.github/000077500000000000000000000000001455202347500154705ustar00rootroot00000000000000stream-shift-1.0.3/.github/workflows/000077500000000000000000000000001455202347500175255ustar00rootroot00000000000000stream-shift-1.0.3/.github/workflows/test.yml000066400000000000000000000007621455202347500212340ustar00rootroot00000000000000name: Build Status on: push: branches: - master pull_request: branches: - master jobs: build: strategy: matrix: node-version: [lts/*] os: [ubuntu-latest, macos-latest, windows-latest] runs-on: ${{ matrix.os }} steps: - uses: actions/checkout@v3 - name: Use Node.js ${{ matrix.node-version }} uses: actions/setup-node@v3 with: node-version: ${{ matrix.node-version }} - run: npm install - run: npm test stream-shift-1.0.3/.gitignore000066400000000000000000000000151455202347500161140ustar00rootroot00000000000000node_modules stream-shift-1.0.3/LICENSE000066400000000000000000000020671455202347500151420ustar00rootroot00000000000000The MIT License (MIT) Copyright (c) 2016 Mathias Buus Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. stream-shift-1.0.3/README.md000066400000000000000000000007401455202347500154100ustar00rootroot00000000000000# stream-shift Returns the next buffer/object in a stream's readable queue ``` npm install stream-shift ``` [![build status](http://img.shields.io/travis/mafintosh/stream-shift.svg?style=flat)](http://travis-ci.org/mafintosh/stream-shift) ## Usage ``` js var shift = require('stream-shift') console.log(shift(someStream)) // first item in its buffer ``` ## Credit Thanks [@dignifiedquire](https://github.com/dignifiedquire) for making this work on node 6 ## License MIT stream-shift-1.0.3/index.js000066400000000000000000000011371455202347500155770ustar00rootroot00000000000000module.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) { var idx = state.bufferIndex || 0 // Since node 6.3.0 state.buffer is a BufferList not an array if (state.buffer.head) { return state.buffer.head.data.length } else if (state.buffer.length - idx > 0 && state.buffer[idx]) { return state.buffer[idx].length } } return state.length } stream-shift-1.0.3/package.json000066400000000000000000000011731455202347500164200ustar00rootroot00000000000000{ "name": "stream-shift", "version": "1.0.3", "description": "Returns the next buffer/object in a stream's readable queue", "main": "index.js", "dependencies": {}, "devDependencies": { "standard": "^7.1.2", "tape": "^4.6.0", "through2": "^2.0.1" }, "scripts": { "test": "standard && tape test.js" }, "repository": { "type": "git", "url": "https://github.com/mafintosh/stream-shift.git" }, "author": "Mathias Buus (@mafintosh)", "license": "MIT", "bugs": { "url": "https://github.com/mafintosh/stream-shift/issues" }, "homepage": "https://github.com/mafintosh/stream-shift" } stream-shift-1.0.3/test.js000066400000000000000000000022161455202347500154460ustar00rootroot00000000000000var tape = require('tape') var through = require('through2') var stream = require('stream') var shift = require('./') tape('shifts next', function (t) { var passthrough = through() passthrough.write('hello') passthrough.write('world') t.same(shift(passthrough), Buffer.from('hello')) t.same(shift(passthrough), Buffer.from('world')) t.end() }) tape('shifts next with core', function (t) { var passthrough = stream.PassThrough() passthrough.write('hello') passthrough.write('world') t.same(shift(passthrough), Buffer.from('hello')) t.same(shift(passthrough), Buffer.from('world')) t.end() }) tape('shifts next with object mode', function (t) { var passthrough = through({objectMode: true}) passthrough.write({hello: 1}) passthrough.write({world: 1}) t.same(shift(passthrough), {hello: 1}) t.same(shift(passthrough), {world: 1}) t.end() }) tape('shifts next with object mode with core', function (t) { var passthrough = stream.PassThrough({objectMode: true}) passthrough.write({hello: 1}) passthrough.write({world: 1}) t.same(shift(passthrough), {hello: 1}) t.same(shift(passthrough), {world: 1}) t.end() })