diff options
Diffstat (limited to 'node_modules/unique-stream')
-rw-r--r-- | node_modules/unique-stream/LICENSE | 20 | ||||
-rw-r--r-- | node_modules/unique-stream/README.md | 133 | ||||
-rw-r--r-- | node_modules/unique-stream/index.js | 48 | ||||
-rw-r--r-- | node_modules/unique-stream/package.json | 34 |
4 files changed, 0 insertions, 235 deletions
diff --git a/node_modules/unique-stream/LICENSE b/node_modules/unique-stream/LICENSE deleted file mode 100644 index cd2225ad8..000000000 --- a/node_modules/unique-stream/LICENSE +++ /dev/null @@ -1,20 +0,0 @@ -Copyright 2014 Eugene Ware - -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/unique-stream/README.md b/node_modules/unique-stream/README.md deleted file mode 100644 index fce2ec019..000000000 --- a/node_modules/unique-stream/README.md +++ /dev/null @@ -1,133 +0,0 @@ -# unique-stream - -node.js through stream that emits a unique stream of objects based on criteria - -[](https://travis-ci.org/eugeneware/unique-stream) -[](https://coveralls.io/github/eugeneware/unique-stream?branch=master) - -## Installation - -Install via [npm](https://www.npmjs.com/): - -``` -$ npm install unique-stream -``` - -## Examples - -### Dedupe a ReadStream based on JSON.stringify: - -``` js -var unique = require('unique-stream') - , Stream = require('stream'); - -// return a stream of 3 identical objects -function makeStreamOfObjects() { - var s = new Stream; - s.readable = true; - var count = 3; - for (var i = 0; i < 3; i++) { - setImmediate(function () { - s.emit('data', { name: 'Bob', number: 123 }); - --count || end(); - }); - } - - function end() { - s.emit('end'); - } - - return s; -} - -// Will only print out one object as the rest are dupes. (Uses JSON.stringify) -makeStreamOfObjects() - .pipe(unique()) - .on('data', console.log); - -``` - -### Dedupe a ReadStream based on an object property: - -``` js -// Use name as the key field to dedupe on. Will only print one object -makeStreamOfObjects() - .pipe(unique('name')) - .on('data', console.log); -``` - -### Dedupe a ReadStream based on a custom function: - -``` js -// Use a custom function to dedupe on. Use the 'number' field. Will only print one object. -makeStreamOfObjects() - .pipe(function (data) { - return data.number; - }) - .on('data', console.log); -``` - -## Dedupe multiple streams - -The reason I wrote this was to dedupe multiple object streams: - -``` js -var aggregator = unique(); - -// Stream 1 -makeStreamOfObjects() - .pipe(aggregator); - -// Stream 2 -makeStreamOfObjects() - .pipe(aggregator); - -// Stream 3 -makeStreamOfObjects() - .pipe(aggregator); - -aggregator.on('data', console.log); -``` - -## Use a custom store to record keys that have been encountered - -By default a set is used to store keys encountered so far, in order to check new ones for -uniqueness. You can supply your own store instead, providing it supports the add(key) and -has(key) methods. This could allow you to use a persistant store so that already encountered -objects are not re-streamed when node is reloaded. - -``` js -var keyStore = { - store: {}, - - add: function(key) { - this.store[key] = true; - }, - - has: function(key) { - return this.store[key] !== undefined; - } -}; - -makeStreamOfObjects() - .pipe(unique('name', keyStore)) - .on('data', console.log); -``` - -## Contributing - -unique-stream is an **OPEN Open Source Project**. This means that: - -> Individuals making significant and valuable contributions are given commit-access to the project to contribute as they see fit. This project is more like an open wiki than a standard guarded open source project. - -See the [CONTRIBUTING.md](https://github.com/eugeneware/unique-stream/blob/master/CONTRIBUTING.md) file for more details. - -### Contributors - -unique-stream is only possible due to the excellent work of the following contributors: - -<table><tbody> -<tr><th align="left">Eugene Ware</th><td><a href="https://github.com/eugeneware">GitHub/eugeneware</a></td></tr> -<tr><th align="left">Craig Ambrose</th><td><a href="https://github.com/craigambrose">GitHub/craigambrose</a></td></tr> -<tr><th align="left">Shinnosuke Watanabe</th><td><a href="https://github.com/shinnn">GitHub/shinnn</a></td></tr> -</tbody></table> diff --git a/node_modules/unique-stream/index.js b/node_modules/unique-stream/index.js deleted file mode 100644 index a2b292069..000000000 --- a/node_modules/unique-stream/index.js +++ /dev/null @@ -1,48 +0,0 @@ -'use strict'; - -var filter = require('through2-filter').obj; -var stringify = require("json-stable-stringify"); - -var ES6Set; -if (typeof global.Set === 'function') { - ES6Set = global.Set; -} else { - ES6Set = function() { - this.keys = []; - this.has = function(val) { - return this.keys.indexOf(val) !== -1; - }, - this.add = function(val) { - this.keys.push(val); - } - } -} - -function prop(propName) { - return function (data) { - return data[propName]; - }; -} - -module.exports = unique; -function unique(propName, keyStore) { - keyStore = keyStore || new ES6Set(); - - var keyfn = stringify; - if (typeof propName === 'string') { - keyfn = prop(propName); - } else if (typeof propName === 'function') { - keyfn = propName; - } - - return filter(function (data) { - var key = keyfn(data); - - if (keyStore.has(key)) { - return false; - } - - keyStore.add(key); - return true; - }); -} diff --git a/node_modules/unique-stream/package.json b/node_modules/unique-stream/package.json deleted file mode 100644 index 034e66ebf..000000000 --- a/node_modules/unique-stream/package.json +++ /dev/null @@ -1,34 +0,0 @@ -{ - "name": "unique-stream", - "version": "2.2.1", - "description": "node.js through stream that emits a unique stream of objects based on criteria", - "repository": "eugeneware/unique-stream", - "author": "Eugene Ware <eugene@noblesamurai.com>", - "license": "MIT", - "files": [ - "index.js" - ], - "scripts": { - "test": "mocha", - "coverage": "istanbul cover _mocha", - "coveralls": "${npm_package_scripts_coverage} && istanbul-coveralls" - }, - "keywords": [ - "unique", - "stream", - "unique-stream", - "streaming", - "streams" - ], - "dependencies": { - "json-stable-stringify": "^1.0.0", - "through2-filter": "^2.0.0" - }, - "devDependencies": { - "after": "~0.8.1", - "chai": "^3.0.0", - "istanbul": "^0.4.2", - "istanbul-coveralls": "^1.0.3", - "mocha": "^2.1.0" - } -} |