Socket
Socket
Sign inDemoInstall

mz

Package Overview
Dependencies
4
Maintainers
2
Versions
22
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

    mz

modernize node.js to current ECMAScript standards


Version published
Maintainers
2
Install size
51.8 kB
Created

Package description

What is mz?

The mz npm package provides promisified versions of core Node.js modules such as fs (filesystem), child_process, and others. It wraps these Node.js core modules in promises, thus allowing developers to use async/await syntax for cleaner and more readable asynchronous code. This package is particularly useful for avoiding callback hell and improving code maintainability.

What are mz's main functionalities?

File System Operations

This feature allows for performing file system operations like reading, writing, and deleting files asynchronously using promises. The code sample demonstrates reading a file asynchronously with async/await syntax.

const fs = require('mz/fs');

async function readFile() {
  try {
    const content = await fs.readFile('/path/to/file.txt', 'utf8');
    console.log(content);
  } catch (err) {
    console.error(err);
  }
}

readFile();

Executing Child Processes

This feature enables the execution of child processes asynchronously. The code sample shows how to list files in the current directory using the `ls -la` command in a child process, leveraging async/await for handling the asynchronous execution.

const exec = require('mz/child_process').exec;

async function listFiles() {
  try {
    const stdout = await exec('ls -la');
    console.log(stdout);
  } catch (err) {
    console.error(err);
  }
}

listFiles();

Other packages similar to mz

Readme

Source

MZ - Modernize node.js

NPM version Build status Test coverage Dependency Status License Downloads Gittip

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 mz as a dependency and install it.

npm i mz

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

var fs = require('mz/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('mz/fs')

co(function* () {
  if (yield 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
  • zlib
var exec = require('mz/child_process').exec

exec('node --version').then(function (stdout) {
  console.log(stdout)
})

Promise Engine

If you've installed bluebird, bluebird will be used. mz does not install bluebird for you.

Otherwise, if you're using a node that has native v8 Promises (v0.11.13+), then that will be used.

Otherwise, this library will crash the process and exit, so you might as well install bluebird as a dependency!

FAQ

Can I use this in production?

If you do, you should probably install bluebird as native v8 promises are still pretty raw.

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:

  • ECMAScript7 Streams

Keywords

FAQs

Last updated on 11 Feb 2015

Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc