node package manager
Loosely couple your services. Use Orgs to version and reuse your code. Create a free org »


MDZ - Modernize node.js

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.

Installation and Usage

Set mdz as a dependency and install it.

npm i mdz

Then prefix the relevant require()s with mdz/:

var fs = require('mdz/fs')
fs.exists(__filename).then(function (exists) {
  if (exists) // do something 

Personally, I use this with generator-based control flow libraries such as co so I don't need to use implementation-specific wrappers like co-fs.

var co = require('co')
var fs = require('mdz/fs')
co(function* () {
  if (yield fs.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_process
  • crypto
  • dns
  • fs
  • zlib
var exec = require('mdz/child_process').exec
exec('node --version').then(function (stdout) {

If you're using node v0.11.13+, the native v8 Promise is used. Otherwise, you must install bluebird yourself. If you want to force this library to use bluebird, set the MDZ_BLUEBIRD environmental variable:



Can I use this in production?

You may want to always use bluebird in production until v8 fixes and optimizes its Promise implementation.

Can I add more features?

Sure. Open an issue.