Socket
Socket
Sign inDemoInstall

stream-transform

Package Overview
Dependencies
1
Maintainers
1
Versions
48
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

    stream-transform

Object transformations implementing the Node.js `stream.Transform` API


Version published
Weekly downloads
1.5M
increased by4.05%
Maintainers
1
Install size
565 kB
Created
Weekly downloads
 

Package description

What is stream-transform?

The stream-transform package is a simple and powerful tool for transforming data in Node.js streams. It allows you to easily modify data as it passes through a stream, making it highly useful for tasks such as data manipulation, filtering, and aggregation in real-time data processing applications.

What are stream-transform's main functionalities?

Synchronous Transformation

This feature allows for synchronous data transformation within a stream. The provided code sample demonstrates how to read data from a CSV file, transform each record by joining its elements with a space, and then output the transformed data.

const transform = require('stream-transform');
const transformer = transform(function(record, callback){
  setTimeout(function(){
    callback(null, record.join(' ') + '\n');
  }, 500);
}, {parallel: 5});
require('fs').createReadStream('/path/to/source.csv').pipe(transformer).pipe(process.stdout);

Asynchronous Transformation

This feature supports asynchronous transformation of stream data. The code sample shows how to asynchronously convert each piece of data to uppercase before passing it through the stream.

const transform = require('stream-transform');
const transformer = transform(function(record, callback){
  process.nextTick(function(){
    callback(null, record.toUpperCase());
  });
});
require('fs').createReadStream('/path/to/source.txt').pipe(transformer).pipe(process.stdout);

Other packages similar to stream-transform

Readme

Source

Build Status NPM NPM

Part of the CSV module, this project is a simple object transformation framework. It implements the Node.js stream.Transform API. It also provides a simple callback-based API for convenience. It is both extremely easy to use and powerful.

Documentation

Features

  • Extends the native Node.js transform stream API
  • Simplicity with the optional callback and sync API
  • Pipe transformations between readable and writable streams
  • Synchronous versus asynchronous user functions
  • Sequential and parallel execution
  • Accept object, array or JSON as input and output
  • Sequential or user-defined concurrent execution
  • Skip and multiply records
  • Alter or clone input records
  • MIT License

Usage

The module is built on the Node.js Stream API. For the sake of simplify, a simple callback API is also provided. To give you a quick look, here's an example of the callback API:

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

input = [ [ '1', '2', '3', '4' ], [ 'a', 'b', 'c', 'd' ] ];
transform(input, function(data){
  data.push(data.shift());
  return data.join(',')+'\n';
}, function(err, output){
  output.should.eql([ '2,3,4,1\n', 'b,c,d,a\n' ]);
});

Development

Tests are executed with mocha. To install it, simple run npm install followed by npm test. It will install mocha and its dependencies in your project "node_modules" directory and run the test suite. The tests run against the CoffeeScript source files.

To generate the JavaScript files, run npm run coffee.

The test suite is run online with Travis. See the Travis definition file to view the tested Node.js version.

Keywords

FAQs

Last updated on 03 Sep 2021

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.

Install

Related posts

SocketSocket SOC 2 Logo

Product

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

Packages

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc