Modernize node.js to current ECMAScript specifications! node.js will not update their API to ES6+ for a while. This library is a wrapper for various aspects of node.js' API.
Set mz as a dependency and install it.
npm i mzThen prefix the relevant require()s with mz/:
varfs=require('mz/fs')fs.exists(__filename).then(function(exists){if(exists)// do something})With ES2017, this will allow you to use async functions cleanly with node's core API:
constfs=require('mz/fs')asyncfunctiondoSomething(){if(awaitfs.exists(__filename))// do something}Many node methods are converted into promises. Any properties that are deprecated or aren't asynchronous will simply be proxied. The modules wrapped are:
child_processcryptodnsfs(usesgraceful-fsif available)readlinezlib
varexec=require('mz/child_process').execexec('node --version').then(function(stdout){console.log(stdout)})mz uses any-promise.
Yes, Node 4.x ships with stable promises support. For older engines,
you should probably install your own promise implementation and register it with
require('any-promise/register')('bluebird').
Nope, probably slower actually.
Sure. Open an issue.
Currently, the plans are to eventually support:
- New APIs in node.js that are not available in older versions of node
- ECMAScript7 Streams