|
|
-
- # 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
|