node package manager
Share your code. npm Orgs help your team discover, share, and reuse code. Create a free org »



Semi-opinionated preset for Babel based on babel-preset-latest but using fast-async for async/await transpilation instead of generators. Also includes configuration options for using Bluebird as the Promise library, targeting Electron, and setting a stage ( ie. stage-0 )


npm i babel-preset-modern-async


Minimum configuration:

  "presets": ["modern-async"]

You can also pass in a configuration object ( configuration intensifies ):

  "presets": [["modern-async", {
    "fast-async": {
      "env": {
        "augmentObject": false,
        "dontMapStackTraces": true,
        "dontInstallRequireHook": true
      "compiler": {
        "promises": true,
        "generators": false
      "runtimePattern": "directive",
      "useRuntimeModule": false
    "electron": false,
    "promise": "bluebird",
    "stage": 0

The above are the default options, the bulk of which come from fast-async. The rest:

  • electron

    When set to true, many plugins will be excluded that the Electron environment natively supports. Similar to the babel-preset-electron preset.

  • promise

    Determines the Promise implementation, which is left native (or whatever you use at runtime) when this option is anything but 'bluebird' (currently the only option with any affect). When set to 'bluebird', the bluebird library is automatically inserted and all Promise references use it without further configuration.

    NOTE: The bluebird library is not a dependency of this preset. If you intend to use this option, you must install it yourself.

  • stage

    A number representing the ES feature stage to use in addition to the latest preset. These correspond to the Babel -stage-* presets.

More advanced configuration notes are in progress.


MIT © Bo Lingen / citycide