Async generators helpers to do great things on Node with streams
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.


Async Generators Helpers for Node.js

Read about me on Medium.

$ npm install --save agh
const agh = require('agh');

Let's see how to use the asyncGeneratorsFactory to transform a function into an async generator:

const { asyncGeneratorsFactory } = require('agh');

// filter function
const onlyOddPlease = function (n) {
    // assuming that 'n' is a number
    if (n % 2) return n;

// transform function
const plusOne = function (n) {
   return n + 1;

const onlyOddPleaseGen = asyncGeneratorsFactory(onlyOddPlease);
const plusOneGen = asyncGeneratorsFactory(plusOne);

You can see that filter functions must return undefined only when a chunk has to be discarded. Normal transform functions must always return a value. Composition functions are not yet supported, but I'm working on them.

Let's see how to pipe the generators for handle streams (Node.js)

const { pipe } = require('agh');

(async function IIAFE() {
    // pipe(inputStream, outputStream [, ...asyncGenerators]);
    // it returns the outputStream
    await pipe(inputStream, outputStream, onlyOddPleaseGen, plusOneGen);

Contact me

Feel free to contact me on twitter: