Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/normalize/mz
modernize node.js to current ECMAScript standards
https://github.com/normalize/mz
Last synced: 4 months ago
JSON representation
modernize node.js to current ECMAScript standards
- Host: GitHub
- URL: https://github.com/normalize/mz
- Owner: normalize
- License: mit
- Created: 2014-05-08T07:09:15.000Z (almost 11 years ago)
- Default Branch: master
- Last Pushed: 2020-12-11T13:09:34.000Z (about 4 years ago)
- Last Synced: 2024-05-22T20:46:16.744Z (9 months ago)
- Language: JavaScript
- Size: 40 KB
- Stars: 1,385
- Watchers: 31
- Forks: 44
- Open Issues: 15
-
Metadata Files:
- Readme: README.md
- Changelog: HISTORY.md
- License: LICENSE
Awesome Lists containing this project
- awesome-nodejs - mz - Modernize node.js to current ECMAScript standards. ![](https://img.shields.io/github/stars/normalize/mz.svg?style=social&label=Star) (Repository / Control flow)
README
# 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').execexec('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