Giter Site home page Giter Site logo

vaheqelyan / babel-plugin-promise Goto Github PK

View Code? Open in Web Editor NEW
3.0 4.0 0.0 241 KB

Promisify plugin for babel,turn any callback into promise

License: MIT License

JavaScript 100.00%
babel babel-plugin promise promise-library asynchronous async async-await async-await-features callback callback-functions api

babel-plugin-promise's Introduction

babel-plugin-promise

Travis

Turn any callback into promise

Basic promisify using leading comments

Without error handling.

Using your own arguments

ES7 Async/Await

ES7 Async/Await + Arrow functions

via NPM

npm install babel-plugin-promise --save-dev

via YARN

yarn add babel-plugin-promise --dev

Basic

before

var fs = require("fs");
//@promisify<err,data> promiseName
__ = fs.readFile("../package.json", "utf8");

after

var fs = require("fs");
//@promisify<err,data> 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

var fs = require("fs");
//@promisify<null,data> promiseName
__ = fs.readFile("../package.json", "utf8");

after

var fs = require("fs");
//@promisify<null,data> 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

//@promisify<err,data> findUser
__ = User.findOne(arg1);

after

//@promisify<err,data> 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

var fs = require("fs");

async function someFunction(){
  await fs.readFile('./package.json','utf8') //@promisify<err,data>
}

after

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<err,data>
}

ES7 Async/Await + Arrow functions

Also, you can make promises with an arrow function expression

before

var fs = require("fs");

const some = async () => await fs.readFile("./package.json", "uft8"); //@promisify<err,data>

after

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<err,data>

babel-plugin-promise's People

Contributors

vaheqelyan avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

babel-plugin-promise's Issues

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.