1.0.0-0 • Published 5 years ago

assign-stream v1.0.0-0

Weekly downloads
3
License
MIT
Repository
github
Last release
5 years ago

assign-stream

npm version Build Status Coverage Status

Streaming Object.assign()

var assign = require('assign-stream');

var target = {foo: 'Hi'};
var assignStream = assign(target);

assignStream.on('finish', function() {
  target; //=> {foo: 'Hello', bar: 'World'}
});

assignStream.write({foo: 'Hello'});
assignStream.write({bar: 'World'});

assignStream.end();

Installation

Use npm.

npm install assign-stream

API

const assignStream = require('assign-stream');

assignStream(target,)

target: any value except for null ({} by default)
callback: Function
Return: stream.Writable

It returns a writable stream that assigns enumerable own properties of chunk objects to the target object using Object.assign().

const assignStream = require('assign-stream');
const array = require('stream-array'); // npm install stream-array

const target = {baz: 2};

assignStream([{foo: 0, bar: 1}, {qux: 3}]);
.on('end', () => {
  target; //=> {foo: 0, bar: 1, baz: 2, qux: 3}
});

arrayStream.pipe(assignStream());

Target object is optional.

const assign = require('assign-stream');

// this._target is an internal property to keep target object
assign
.on('finish', () => {
  this._target; //=> {}
})
.end();

callback(target)

You can specify a function to be called on finish event. it will be called with the target object.

const assignStream = require('assign-stream');

assignStream(target => {
  target; //=> [0, 1, 2]
}).end([0, 1, 2]);

assignStream([0, 1, 2], target => {
  target; //=> [0, 1, 2]
}).end();

License

Copyright (c) 2014 - 2018 Shinnosuke Watanabe

Licensed under the MIT License.