Nevermore: a Poet's Mantra

    babel-plugin-transform-async-to-bluebird

    1.1.1 • Public • Published

    babel-plugin-transform-async-to-bluebird

    This plugin transforms async to bluebird.

    Examples

    An async function containing no await gets wrapped by bluebirds method function without using the generator, resulting in less overhead. All returned or thrown values are wrapped by Promises and then returned.

    async function myFunction(input) {
        if (input === 0) throw new TypeError('Invalid input');
        if (input === 42) return promiseReturningFunction(input);
        return input + 10;
    }
     
    myFunction(0); // Returns a Promise, rejecting into an TypeError('Invalid input')
    myFunction(42); // Returns a Promise
    myFunction($other_value); // Returns a Promise, resolving into $other_value + 10

    On the other side an async + await function gets wrapped by bluebirds coroutine; it's using the generator.

    async function myFunction(input) {
        if (input === 0) throw new TypeError('Invalid input');
        const res = await promiseReturningFunction(input);
        return res + 10;
    }

    Usage

    1. Install bluebird: npm install --save bluebird
    2. Install the plugin: npm install --save-dev babel-plugin-transform-async-to-bluebird
    3. Add transform-async-to-bluebird to your .babelrc file:
    {
        "plugins": ["transform-async-to-bluebird"]
    }

    Credits

    This babel plugin is based on babel-helper-remap-async-to-generator

    Keywords

    none

    Install

    npm i babel-plugin-transform-async-to-bluebird

    DownloadsWeekly Downloads

    464

    Version

    1.1.1

    License

    MIT

    Last publish

    Collaborators

    • chpio