New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

cop

Package Overview
Dependencies
Maintainers
1
Versions
17
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

cop

Filter object streams

  • 1.0.0
  • latest
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
24
decreased by-40%
Maintainers
1
Weekly downloads
 
Created
Source

cop - modify object stream

The cop Node.js package offers a Transform stream to conventiently cop data from object streams.

Build Status

Creating a Cop Object

Use require('cop') to get a function that returns a Transform stream, configured in object mode, to which you can write arbitrary data. This constructor function takes either a String or a function as its sole argument.

Emitting Named Properties

Specify a String to select a property, and the cop stream will emit the values of matching properties for all objects written to it. If an object doesn't have a property with this name, or the property's value is null, the stream doesn't end, but just skips the object and moves on the next.

cop (key)

  • key The name of the property of which to emit the value.
var cop = require('cop')
var stream = require('stream')

var objs = [
  { name: 'Moe' },
  { name: 'Larry' },
  { name: 'Curly' }
]

var stooges = new stream.Readable({ objectMode: true })
stooges._read = function () {
  stooges.push(objs.shift() || null)
}

stooges
  .pipe(cop('name'))
  .pipe(process.stdout)

Transforming Objects

To apply custom transformations to each object, you can supply your own synchronous map function, which is applied with each object and is expected to return an arbitrary object to be emitted by the cop stream. If you want to skip the current object, you can return null or undefinedthe stream won't stop. For asynchronous work, of course, you should write your own stream.

cop (map)

  • map A function which is applied to each object written to the stream.

The following use case, streaming file entries with fstream and emitting just the filenames, filtering out directories; is the origin of this module. The filtering happens internally btw, sorry about that. But you get the point, you can do anything you want in the map function.

var cop = require('cop')
var fstream = require('fstream')

function map (obj) {
  return obj ? obj['path'] + '\n' : undefined
}

fstream.Reader({ path: __dirname })
  .pipe(cop(map))
  .pipe(process.stdout)

Installing Cop

With npm do:

$ npm install cop

License

MIT License

Keywords

FAQs

Package last updated on 03 Apr 2016

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