JSPM

  • Created
  • Published
  • Downloads 28366917
  • Score
    100M100P100Q269095F
  • License MIT

Explode async and generator functions into a state machine.

Package Exports

  • @babel/plugin-transform-regenerator

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (@babel/plugin-transform-regenerator) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

@babel/plugin-transform-regenerator

Transform async/generator functions with regenerator

Example

In

function* a() {
  yield 1;
}

Out

var _marked = [a].map(regeneratorRuntime.mark);

function a() {
  return regeneratorRuntime.wrap(function a$(_context) {
    while (1) {
      switch (_context.prev = _context.next) {
        case 0:
          _context.next = 2;
          return 1;

        case 2:
        case "end":
          return _context.stop();
      }
    }
  }, _marked[0], this);
}

Installation

npm install --save-dev @babel/plugin-transform-regenerator

Usage

Without options:

{
  "plugins": ["@babel/plugin-transform-regenerator"]
}

With options:

name default value
asyncGenerators true
generators true
async true
{
  "plugins": [
    ["@babel/plugin-transform-regenerator", {
      "asyncGenerators": false,
      "generators": false,
      "async": false
    }]
  ]
}

Via CLI

babel --plugins @babel/plugin-transform-regenerator script.js

Via Node API

require("@babel/core").transform("code", {
  plugins: ["@babel/plugin-transform-regenerator"]
});