Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

and-stream

Package Overview
Dependencies
Maintainers
1
Versions
2
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

and-stream

Filter multiple-streams of incoming objects, and only return objects that are present in all streams.

  • 0.0.2
  • latest
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
2
decreased by-83.33%
Maintainers
1
Weekly downloads
 
Created
Source

and-stream

Node.js Stream to filter multiple-streams of incoming objects, and only return objects that are present in ALL streams.

build status

Installation

Install via npm:

$ npm install and-stream

Examples

Only print out objects that are present in two input object streams

var andStream = require('and-stream');

// No key passed into the factory method, so just uses JSON.stringify for uniqueness
var and = andStream();
and
  .on('data', console.log)
  .on('end', process.exit);

aStreamOfObjects()       // emits objects
  .pipe(and.stream());

anotherStreamOfObjects() // emits objects
  .pipe(and.stream());

// Only objects that are identical and emitted by both streams will be printed

The and-stream constructor takes an optional argument which is used to determine the unique key to identify an object by. If not used, it will default to using JSON.stringify to uniquely identify each object, so only if the exact same object is present on all streams will the objected be emmitted by the and-stream.

Use the name property on the object as the object key

var andStream = require('and-stream');

// Use the 'name' field as the key for anding object streams
var and = andStream('name');
and
  .on('data', console.log)
  .on('end', process.exit);

aStreamOfObjects()       // emits objects
  .pipe(and.stream());

anotherStreamOfObjects() // emits objects
  .pipe(and.stream());

// Only objects that have the same .name field on both streams will be printed

Use a custom function on the objects to determine the key

var andStream = require('and-stream');

// Use the 'name' field as the key for anding object streams
var and = andStream(function (data) {
  var strKey = data.name;
  var useKey = new Buffer(strKey, 'utf8').toString('base64');
  return useKey;
});
and
  .on('data', console.log)
  .on('end', process.exit);

aStreamOfObjects()       // emits objects
  .pipe(and.stream());

anotherStreamOfObjects() // emits objects
  .pipe(and.stream());

// Only objects that have the same base64 of the .name field on both streams will be printed

Keywords

FAQs

Package last updated on 06 Sep 2013

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc