egoist / babel-plugin-sync

Make asynchronous methods synchronous.
MIT License
12 stars 3 forks source link

babel-plugin-sync

NPM version NPM downloads CircleCI donate chat

Install

yarn add babel-plugin-sync --dev

Usage

With .babelrc:

{
  "plugins": [
    "sync"
  ]
}

In:

class MyModule {
  // $MakeMeSync
  async read() {
    await this.resolve('./file')
  }
}

Out:

class MyModule {
  async read() {
    await this.resolve('./file')
  }
  readSync() {
    this.resolveSync('./file')
  }
}

Make returnStatement sync

We don't know if it's safe to make the return statement sync at all, you can use the await keyword or // $MakeMeSync explicitly.

class Foo {
  // $MakeMeSync
  async foo() {
-    return this.bar()
+    return this.bar() // $MakeMeSync
  }
}

Used By

Contributing

  1. Fork it!
  2. Create your feature branch: git checkout -b my-new-feature
  3. Commit your changes: git commit -am 'Add some feature'
  4. Push to the branch: git push origin my-new-feature
  5. Submit a pull request :D

Author

babel-plugin-sync © egoist, Released under the MIT License.
Authored and maintained by egoist with help from contributors (list).

github.com/egoist · GitHub @egoist · Twitter @_egoistlily