| 
						 | 
						- 
 - # MZ - Modernize node.js
 - 
 - [![NPM version][npm-image]][npm-url]
 - [![Build status][travis-image]][travis-url]
 - [![Test coverage][coveralls-image]][coveralls-url]
 - [![Dependency Status][david-image]][david-url]
 - [![License][license-image]][license-url]
 - [![Downloads][downloads-image]][downloads-url]
 - 
 - Modernize node.js to current ECMAScript specifications!
 - node.js will not update their API to ES6+ [for a while](https://github.com/joyent/node/issues/7549).
 - This library is a wrapper for various aspects of node.js' API.
 - 
 - ## Installation and Usage
 - 
 - Set `mz` as a dependency and install it.
 - 
 - ```bash
 - npm i mz
 - ```
 - 
 - Then prefix the relevant `require()`s with `mz/`:
 - 
 - ```js
 - var fs = 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:
 - 
 - ```js
 - const fs = require('mz/fs')
 - 
 - 
 - async function doSomething () {
 -   if (await fs.exists(__filename)) // do something
 - }
 - ```
 - 
 - ## Promisification
 - 
 - 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_process`
 - - `crypto`
 - - `dns`
 - - `fs` (uses `graceful-fs` if available)
 - - `readline`
 - - `zlib`
 - 
 - ```js
 - var exec = require('mz/child_process').exec
 - 
 - exec('node --version').then(function (stdout) {
 -   console.log(stdout)
 - })
 - ```
 - 
 - ## Promise Engine
 - 
 - `mz` uses [`any-promise`](https://github.com/kevinbeaty/any-promise).
 - 
 - ## FAQ
 - 
 - ### Can I use this in production?
 - 
 - 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')`.
 - 
 - ### Will this make my app faster?
 - 
 - Nope, probably slower actually.
 - 
 - ### Can I add more features?
 - 
 - 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
 - 
 - [bluebird]: https://github.com/petkaantonov/bluebird
 - 
 - [npm-image]: https://img.shields.io/npm/v/mz.svg?style=flat-square
 - [npm-url]: https://npmjs.org/package/mz
 - [github-tag]: http://img.shields.io/github/tag/normalize/mz.svg?style=flat-square
 - [github-url]: https://github.com/normalize/mz/tags
 - [travis-image]: https://img.shields.io/travis/normalize/mz.svg?style=flat-square
 - [travis-url]: https://travis-ci.org/normalize/mz
 - [coveralls-image]: https://img.shields.io/coveralls/normalize/mz.svg?style=flat-square
 - [coveralls-url]: https://coveralls.io/r/normalize/mz?branch=master
 - [david-image]: http://img.shields.io/david/normalize/mz.svg?style=flat-square
 - [david-url]: https://david-dm.org/normalize/mz
 - [license-image]: http://img.shields.io/npm/l/mz.svg?style=flat-square
 - [license-url]: LICENSE
 - [downloads-image]: http://img.shields.io/npm/dm/mz.svg?style=flat-square
 - [downloads-url]: https://npmjs.org/package/mz
 
 
  |