https://github.com/valqelyan/babel-plugin-promise
Promisify plugin for babel,turn any callback into promise
https://github.com/valqelyan/babel-plugin-promise
api async async-await async-await-features asynchronous babel babel-plugin callback callback-functions promise promise-library
Last synced: about 1 month ago
JSON representation
Promisify plugin for babel,turn any callback into promise
- Host: GitHub
- URL: https://github.com/valqelyan/babel-plugin-promise
- Owner: valqelyan
- License: mit
- Created: 2017-08-21T08:48:57.000Z (almost 9 years ago)
- Default Branch: master
- Last Pushed: 2017-09-05T11:15:54.000Z (almost 9 years ago)
- Last Synced: 2026-04-27T00:26:00.949Z (about 2 months ago)
- Topics: api, async, async-await, async-await-features, asynchronous, babel, babel-plugin, callback, callback-functions, promise, promise-library
- Language: JavaScript
- Homepage:
- Size: 235 KB
- Stars: 3
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# babel-plugin-promise
[](https://travis-ci.org/vaheqelyan/babel-plugin-promise)
Turn any callback into promise
[Basic promisify using leading comments](#basic)
[Without error handling.](#without-error-handling)
[Using your own arguments](#using-your-own-arguments)
[ES7 Async/Await](#es7-asyncawait)
[ES7 Async/Await + Arrow functions](#es7-async-and-await-arrow-functions)
via NPM
```code
npm install babel-plugin-promise --save-dev
```
via YARN
```code
yarn add babel-plugin-promise --dev
```
## Basic
**before**
```javascript
var fs = require("fs");
//@promisify promiseName
__ = fs.readFile("../package.json", "utf8");
```
**after**
```javascript
var fs = require("fs");
//@promisify promiseName
function promiseName() {
return new Promise((resolve, reject) => {
fs.readFile("../package.json", "utf8", (err, data) => {
if (err) reject(err);
resolve(data);
});
});
}
promiseName().then(res => {
console.log(res);
});
```
## Without error handling.
If the callback does not return us the error message, insert ```null``` instead of ```error```
**before**
```javascript
var fs = require("fs");
//@promisify promiseName
__ = fs.readFile("../package.json", "utf8");
```
**after**
```javascript
var fs = require("fs");
//@promisify promiseName
function promiseName() {
return new Promise(resolve => {
fs.readFile("../package.json", "utf8", data => {
resolve(data);
});
});
}
```
You can see that it does not handle reject
## Using your own arguments
For custom arguments
**before**
```javascript
//@promisify findUser
__ = User.findOne(arg1);
```
**after**
```javascript
//@promisify findUser
function findUser(arg1) {
return new Promise((resolve, reject) => {
User.findOne(arg1, (err, data) => {
if (err) reject(err);
resolve(data);
});
});
}
```
## ES7 Async/Await
This time you should use trailing comments
**before**
```javascript
var fs = require("fs");
async function someFunction(){
await fs.readFile('./package.json','utf8') //@promisify
}
```
**after**
```javascript
var fs = require("fs");
async function someFunction() {
await new Promise((resolve, reject) => {
fs.readFile('./package.json', 'utf8', (err, data) => {
if (err) reject(err);
resolve(data);
});
}); //@promisify
}
```
### ES7 Async/Await + Arrow functions
Also, you can make promises with an arrow function expression
**before**
```javascript
var fs = require("fs");
const some = async () => await fs.readFile("./package.json", "uft8"); //@promisify
```
**after**
```javascript
var fs = require("fs");
const some = async () => await new Promise((resolve, reject) => {
fs.readFile("./package.json", "uft8", (err, data) => {
if (err) reject(err);
resolve(data);
});
}); //@promisify
```