shichen b6c5ecc67a init před 10 měsíci
..
lib b6c5ecc67a init před 10 měsíci
.npmignore b6c5ecc67a init před 10 měsíci
README.md b6c5ecc67a init před 10 měsíci
package.json b6c5ecc67a init před 10 měsíci

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

Via .babelrc (Recommended)

.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