![New axobject-query Maintainer Faces Backlash Over Controversial Decision to Support Legacy Node.js Versions](https://cdn.sanity.io/images/cgdhsj6q/production/86e6ebdea652d20da070ebbda20134b839972db7-1024x1024.webp?w=800&fit=max&auto=format)
Security News
New axobject-query Maintainer Faces Backlash Over Controversial Decision to Support Legacy Node.js Versions
A JavaScript library maintainer is under fire after merging a controversial PR to support legacy versions of Node.js.
concise-object-stream
Advanced tools
Readme
A simplified API for working with node object streams
This module is inspired by Rod Vagg's through2 module but by focusing purely on object streams is able to provide a more concise API, including support for returning a value or promise from a transform function.
Install via NPM
npm i concise-object-stream --save
At it's simplest a transform stream can be created from function that returns the desired value to be queued or a promise for that value:
var objectStream = require('concise-object-stream')
getKeyStream()
.pipe(objectStream.map(key => getObject(key)))
.pipe(someOtherStream)
callback shorthand style is also supported:
getKeyStream()
.pipe(objectStream.map((key, callback) => {
const obj = getObject(key);
callback(null, obj);
}))
.pipe(someOtherStream)
as is traditional style using this
:
getKeyStream()
.pipe(objectStream.map(function (key, callback) {
const obj = getObject(key);
this.push(obj);
callback();
}))
.pipe(someOtherStream)
objectStream.map([options], [transform], [flush])
Options to be passed to the stream.Transform
constructor, see here for available options.
getKeyStream()
.pipe(objectStream.map({highWaterMark: 6}, key => getObject(key)))
.pipe(someOtherStream)
The transform function will be invoked with arguments object
and callback
.
object
is the callback object on the stream, callback
indicates the end of the transform function and signal any errors.
getKeyStream()
.pipe(objectStream.map(function (key, callback) {
const obj = getObject(key);
this.push(obj);
callback();
}))
.pipe(someOtherStream)
callback
can also be called with an object as a shorthand for queuing a single object on the stream:
getKeyStream()
.pipe(objectStream.map((key, callback) => {
const obj = getObject(key);
callback(null, obj);
}))
.pipe(someOtherStream)
Instead of using callback
a value may be returned from the transform function, if the return value is a promise then this will be resolved and the result queued.
getKeyStream()
.pipe(objectStream.map(key => getObject(key)))
.pipe(someOtherStream)
If a transform function is not supplied it will default to a pass-through stream.
The flush function will be invoked with a single argument done
which can be used to indicate the end of the flush function and signal any errors.
getKeyStream()
.pipe(objectStream.map(function (key, callback) {
const obj = getObject(key);
this.push(obj);
callback();
}, function (done) {
const finalObj = getFinalObj();
this.push(obj);
done();
}))
.pipe(someOtherStream)
Like the callback
function, done
supports a shorthand for queueing a single value:
getKeyStream()
.pipe(objectStream.map((key, callback) => {
const obj = getObject(key);
callback(null, obj);
}, done => {
const finalObj = getFinalObj();
done(null, obj);
}))
.pipe(someOtherStream)
flush
also supports returning a value or promise, promises will be resolved and the result queued:
getKeyStream()
.pipe(objectStream.map(key => getObject(key), () => getFinalObj()))
.pipe(someOtherStream)
MIT
FAQs
More concise node object streams
The npm package concise-object-stream receives a total of 2 weekly downloads. As such, concise-object-stream popularity was classified as not popular.
We found that concise-object-stream 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
A JavaScript library maintainer is under fire after merging a controversial PR to support legacy versions of Node.js.
Security News
Results from the 2023 State of JavaScript Survey highlight key trends, including Vite's dominance, rising TypeScript adoption, and the enduring popularity of React. Discover more insights on developer preferences and technology usage.
Security News
The US Justice Department has penalized two consulting firms $11.3 million for failing to meet cybersecurity requirements on federally funded projects, emphasizing strict enforcement to protect sensitive government data.