You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
mn a0e4803194
test
11 months ago
..
lib test 11 months ago
.npmignore test 11 months ago
README.md test 11 months ago
package.json test 11 months ago

README.md

babel-plugin-transform-async-generator-functions

Turn async generator functions and for-await statements to ES2015 generators

Example

In

async function* agf() {
  await 1;
  yield 2;
}

Out

var _asyncGenerator = ...

let agf = (() => {
  var _ref = _asyncGenerator.wrap(function* () {
    yield _asyncGenerator.await(1);
    yield 2;
  });

  return function agf() {
    return _ref.apply(this, arguments);
  };
})();

For await example

async function f() {
  for await (let x of y) {
    g(x);
  }
}

Example Usage

async function* genAnswers() {
  var stream = [ Promise.resolve(4), Promise.resolve(9), Promise.resolve(12) ];
  var total = 0;
  for await (let val of stream) {
    total += await val;
    yield total;
  }
}

function forEach(ai, fn) {
  return ai.next().then(function (r) {
    if (!r.done) {
      fn(r);
      return forEach(ai, fn);
    }
  });
}

var output = 0;
forEach(genAnswers(), function(val) { output += val.value })
.then(function () {
  console.log(output); // 42
});

Try it Out in the REPL

Installation

npm install --save-dev babel-plugin-transform-async-generator-functions

Usage

.babelrc

{
  "plugins": ["transform-async-generator-functions"]
}

Via CLI

babel --plugins transform-async-generator-functions script.js

Via Node API

require("babel-core").transform("code", {
  plugins: ["transform-async-generator-functions"]
});

References