diff options
Diffstat (limited to 'node_modules/stream-to-array')
-rw-r--r-- | node_modules/stream-to-array/.npmignore | 1 | ||||
-rw-r--r-- | node_modules/stream-to-array/.travis.yml | 7 | ||||
-rw-r--r-- | node_modules/stream-to-array/Makefile | 12 | ||||
-rw-r--r-- | node_modules/stream-to-array/README.md | 77 | ||||
-rw-r--r-- | node_modules/stream-to-array/index.js | 49 | ||||
-rw-r--r-- | node_modules/stream-to-array/package.json | 31 |
6 files changed, 177 insertions, 0 deletions
diff --git a/node_modules/stream-to-array/.npmignore b/node_modules/stream-to-array/.npmignore new file mode 100644 index 000000000..602eb8e1b --- /dev/null +++ b/node_modules/stream-to-array/.npmignore @@ -0,0 +1 @@ +test.js
\ No newline at end of file diff --git a/node_modules/stream-to-array/.travis.yml b/node_modules/stream-to-array/.travis.yml new file mode 100644 index 000000000..251c95a3b --- /dev/null +++ b/node_modules/stream-to-array/.travis.yml @@ -0,0 +1,7 @@ +node_js: +- "0.10" +- "0.11" +language: node_js +matrix: + allow_failures: + - node_js: "0.11"
\ No newline at end of file diff --git a/node_modules/stream-to-array/Makefile b/node_modules/stream-to-array/Makefile new file mode 100644 index 000000000..74096766c --- /dev/null +++ b/node_modules/stream-to-array/Makefile @@ -0,0 +1,12 @@ +NODE ?= node +BIN = ./node_modules/.bin/ + +test: + @${NODE} ${BIN}mocha \ + --reporter spec \ + --bail + +clean: + @rm -rf node_modules + +.PHONY: test clean
\ No newline at end of file diff --git a/node_modules/stream-to-array/README.md b/node_modules/stream-to-array/README.md new file mode 100644 index 000000000..56adf2dc5 --- /dev/null +++ b/node_modules/stream-to-array/README.md @@ -0,0 +1,77 @@ +# Stream to Array [](https://travis-ci.org/stream-utils/stream-to-array) + +Concatenate a readable stream's data into a single array. + +You may also be interested in: + +- [raw-body](https://github.com/stream-utils/raw-body) for strings + +## API + +```js +var toArray = require('stream-to-array') +var stream = fs.createReadStream('some file.txt') +``` + +### toArray([stream], [callback(err, arr)]) + +Returns all the data objects in an array. +This is useful for streams in object mode if you want to just use an array. + +```js +streamTo.array(stream, function (err, arr) { + assert.ok(Array.isArray(arr)) +}) +``` + +If `stream` is not defined, it is assumed that `this` is a stream. + +```js +var stream = new Stream.Readable() +stream.toArray = toArray +stream.toArray(function (err, arr) { + +}) +``` + +If `callback` is not defined, then it is assumed that it is being yielded within a generator. + +```js +function* () { + var stream = new Stream.Readable() + stream.toArray = toArray + var arr = yield stream.toArray() +} +``` + +If you want to return a buffer, just use `Buffer.concat(arr)` + +```js +var stream = new Stream.Readable() +var arr = yield toArray(stream) +var buffer = Buffer.concat(arr) +``` + +## License + +The MIT License (MIT) + +Copyright (c) 2013 Jonathan Ong me@jongleberry.com + +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. diff --git a/node_modules/stream-to-array/index.js b/node_modules/stream-to-array/index.js new file mode 100644 index 000000000..76fcd1fc6 --- /dev/null +++ b/node_modules/stream-to-array/index.js @@ -0,0 +1,49 @@ +module.exports = function (stream, done) { + if (!stream) { + // no arguments, meaning stream = this + stream = this + } else if (typeof stream === 'function') { + // stream = this, callback passed + done = stream + stream = this + } + + // if stream is already ended, + // return an array + if (!stream.readable) { + process.nextTick(function () { + done(null, []) + }) + return defer + } + + var arr = [] + + stream.on('data', onData) + stream.once('end', onEnd) + stream.once('error', onEnd) + stream.once('close', cleanup) + + return defer + + function defer(fn) { + done = fn + } + + function onData(doc) { + arr.push(doc) + } + + function onEnd(err) { + done(err, arr) + cleanup() + } + + function cleanup() { + arr = null + stream.removeListener('data', onData) + stream.removeListener('end', onEnd) + stream.removeListener('error', onEnd) + stream.removeListener('close', cleanup) + } +}
\ No newline at end of file diff --git a/node_modules/stream-to-array/package.json b/node_modules/stream-to-array/package.json new file mode 100644 index 000000000..8dfe674d8 --- /dev/null +++ b/node_modules/stream-to-array/package.json @@ -0,0 +1,31 @@ +{ + "name": "stream-to-array", + "description": "Concatenate a readable stream's data into a single array", + "version": "1.0.0", + "author": { + "name": "Jonathan Ong", + "email": "me@jongleberry.com", + "url": "http://jongleberry.com", + "twitter": "https://twitter.com/jongleberry" + }, + "license": "MIT", + "repository": { + "type": "git", + "url": "https://github.com/stream-utils/stream-to-array.git" + }, + "bugs": { + "mail": "me@jongleberry.com", + "url": "https://github.com/stream-utils/stream-to-array/issues" + }, + "devDependencies": { + "co": "*", + "gnode": "*", + "mocha": "*" + }, + "scripts": { + "test": "NODE=gnode make test" + }, + "engines": { + "node": ">= 0.10.0" + } +} |