![require(esm) Backported to Node.js 20, Paving the Way for ESM-Only Packages](https://cdn.sanity.io/images/cgdhsj6q/production/be8ab80c8efa5907bc341c6fefe9aa20d239d890-1600x1097.png?w=400&fit=max&auto=format)
Security News
require(esm) Backported to Node.js 20, Paving the Way for ESM-Only Packages
require(esm) backported to Node.js 20, easing the transition to ESM-only packages and reducing complexity for developers as Node 18 nears end-of-life.
The cop Node.js package offers a Transform
stream to conventiently cop data from object streams.
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.
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.
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)
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 undefined
—the stream won't stop. For asynchronous work, of course, you should write your own stream.
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)
With npm do:
$ npm install cop
FAQs
Filter object streams
The npm package cop receives a total of 21 weekly downloads. As such, cop popularity was classified as not popular.
We found that cop demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
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.
Security News
require(esm) backported to Node.js 20, easing the transition to ESM-only packages and reducing complexity for developers as Node 18 nears end-of-life.
Security News
PyPI now supports iOS and Android wheels, making it easier for Python developers to distribute mobile packages.
Security News
Create React App is officially deprecated due to React 19 issues and lack of maintenance—developers should switch to Vite or other modern alternatives.