summaryrefslogtreecommitdiff
path: root/node_modules/mz
diff options
context:
space:
mode:
Diffstat (limited to 'node_modules/mz')
-rw-r--r--node_modules/mz/HISTORY.md66
-rw-r--r--node_modules/mz/LICENSE22
-rw-r--r--node_modules/mz/README.md106
-rw-r--r--node_modules/mz/child_process.js8
-rw-r--r--node_modules/mz/crypto.js9
-rw-r--r--node_modules/mz/dns.js16
-rw-r--r--node_modules/mz/fs.js62
-rw-r--r--node_modules/mz/index.js8
-rw-r--r--node_modules/mz/package.json44
-rw-r--r--node_modules/mz/readline.js64
-rw-r--r--node_modules/mz/zlib.js13
11 files changed, 418 insertions, 0 deletions
diff --git a/node_modules/mz/HISTORY.md b/node_modules/mz/HISTORY.md
new file mode 100644
index 0000000..6ebee21
--- /dev/null
+++ b/node_modules/mz/HISTORY.md
@@ -0,0 +1,66 @@
+
+2.7.0 / 2017-09-13
+==================
+
+ * feat: support fs.copyFile (#58)
+
+2.6.0 / 2016-11-22
+==================
+
+ * Added fdatasync to fs api (#46)
+
+2.5.0 / 2016-11-04
+==================
+
+ * feat: support fs.mkdtemp
+
+2.4.0 / 2016-03-23
+==================
+
+ * add `fs.truncate()` [#34](https://github.com/normalize/mz/pull/34)
+
+2.3.1 / 2016-02-01
+==================
+
+ * update `any-promise@v1`
+
+2.3.0 / 2016-01-30
+==================
+
+ * feat(package): switch to `any-promise` to support more promise engines
+
+2.2.0 / 2016-01-24
+==================
+
+ * feat(package): add index.js to files
+
+2.1.0 / 2015-10-15
+==================
+
+ * support for readline library
+
+2.0.0 / 2015-05-24
+==================
+
+ * support callbacks as well
+
+1.2.0 / 2014-12-16
+==================
+
+ * refactor promisification to `thenify` and `thenify-all`
+
+1.1.0 / 2014-11-14
+==================
+
+ * use `graceful-fs` if available
+
+1.0.1 / 2014-08-18
+==================
+
+ * don't use `bluebird.promisify()` - unnecessarily wraps runtime errors, causing issues
+
+1.0.0 / 2014-06-18
+==================
+
+ * use `bluebird` by default if found
+ * support node 0.8
diff --git a/node_modules/mz/LICENSE b/node_modules/mz/LICENSE
new file mode 100644
index 0000000..1835f3d
--- /dev/null
+++ b/node_modules/mz/LICENSE
@@ -0,0 +1,22 @@
+
+The MIT License (MIT)
+
+Copyright (c) 2014-2016 Jonathan Ong me@jongleberry.com and Contributors
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
diff --git a/node_modules/mz/README.md b/node_modules/mz/README.md
new file mode 100644
index 0000000..50d6557
--- /dev/null
+++ b/node_modules/mz/README.md
@@ -0,0 +1,106 @@
+
+# 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
diff --git a/node_modules/mz/child_process.js b/node_modules/mz/child_process.js
new file mode 100644
index 0000000..06d5d9e
--- /dev/null
+++ b/node_modules/mz/child_process.js
@@ -0,0 +1,8 @@
+
+require('thenify-all').withCallback(
+ require('child_process'),
+ exports, [
+ 'exec',
+ 'execFile',
+ ]
+)
diff --git a/node_modules/mz/crypto.js b/node_modules/mz/crypto.js
new file mode 100644
index 0000000..d8cff57
--- /dev/null
+++ b/node_modules/mz/crypto.js
@@ -0,0 +1,9 @@
+
+require('thenify-all').withCallback(
+ require('crypto'),
+ exports, [
+ 'pbkdf2',
+ 'pseudoRandomBytes',
+ 'randomBytes'
+ ]
+)
diff --git a/node_modules/mz/dns.js b/node_modules/mz/dns.js
new file mode 100644
index 0000000..c103582
--- /dev/null
+++ b/node_modules/mz/dns.js
@@ -0,0 +1,16 @@
+
+require('thenify-all').withCallback(
+ require('dns'),
+ exports, [
+ 'lookup',
+ 'resolve',
+ 'resolve4',
+ 'resolve6',
+ 'resolveCname',
+ 'resolveMx',
+ 'resolveNs',
+ 'resolveSrv',
+ 'resolveTxt',
+ 'reverse'
+ ]
+)
diff --git a/node_modules/mz/fs.js b/node_modules/mz/fs.js
new file mode 100644
index 0000000..1cfd2d7
--- /dev/null
+++ b/node_modules/mz/fs.js
@@ -0,0 +1,62 @@
+
+var Promise = require('any-promise')
+var fs
+try {
+ fs = require('graceful-fs')
+} catch(err) {
+ fs = require('fs')
+}
+
+var api = [
+ 'appendFile',
+ 'chmod',
+ 'chown',
+ 'close',
+ 'fchmod',
+ 'fchown',
+ 'fdatasync',
+ 'fstat',
+ 'fsync',
+ 'ftruncate',
+ 'futimes',
+ 'lchown',
+ 'link',
+ 'lstat',
+ 'mkdir',
+ 'open',
+ 'read',
+ 'readFile',
+ 'readdir',
+ 'readlink',
+ 'realpath',
+ 'rename',
+ 'rmdir',
+ 'stat',
+ 'symlink',
+ 'truncate',
+ 'unlink',
+ 'utimes',
+ 'write',
+ 'writeFile'
+]
+
+typeof fs.access === 'function' && api.push('access')
+typeof fs.copyFile === 'function' && api.push('copyFile')
+typeof fs.mkdtemp === 'function' && api.push('mkdtemp')
+
+require('thenify-all').withCallback(fs, exports, api)
+
+exports.exists = function (filename, callback) {
+ // callback
+ if (typeof callback === 'function') {
+ return fs.stat(filename, function (err) {
+ callback(null, !err);
+ })
+ }
+ // or promise
+ return new Promise(function (resolve) {
+ fs.stat(filename, function (err) {
+ resolve(!err)
+ })
+ })
+}
diff --git a/node_modules/mz/index.js b/node_modules/mz/index.js
new file mode 100644
index 0000000..cef508d
--- /dev/null
+++ b/node_modules/mz/index.js
@@ -0,0 +1,8 @@
+module.exports = {
+ fs: require('./fs'),
+ dns: require('./dns'),
+ zlib: require('./zlib'),
+ crypto: require('./crypto'),
+ readline: require('./readline'),
+ child_process: require('./child_process')
+}
diff --git a/node_modules/mz/package.json b/node_modules/mz/package.json
new file mode 100644
index 0000000..de8d542
--- /dev/null
+++ b/node_modules/mz/package.json
@@ -0,0 +1,44 @@
+{
+ "name": "mz",
+ "description": "modernize node.js to current ECMAScript standards",
+ "version": "2.7.0",
+ "author": {
+ "name": "Jonathan Ong",
+ "email": "me@jongleberry.com",
+ "url": "http://jongleberry.com",
+ "twitter": "https://twitter.com/jongleberry"
+ },
+ "license": "MIT",
+ "repository": "normalize/mz",
+ "dependencies": {
+ "any-promise": "^1.0.0",
+ "object-assign": "^4.0.1",
+ "thenify-all": "^1.0.0"
+ },
+ "devDependencies": {
+ "istanbul": "^0.4.0",
+ "bluebird": "^3.0.0",
+ "mocha": "^3.0.0"
+ },
+ "scripts": {
+ "test": "mocha --reporter spec",
+ "test-cov": "istanbul cover node_modules/mocha/bin/_mocha -- --reporter dot",
+ "test-travis": "istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --reporter dot"
+ },
+ "keywords": [
+ "promisify",
+ "promise",
+ "thenify",
+ "then",
+ "es6"
+ ],
+ "files": [
+ "index.js",
+ "child_process.js",
+ "crypto.js",
+ "dns.js",
+ "fs.js",
+ "readline.js",
+ "zlib.js"
+ ]
+}
diff --git a/node_modules/mz/readline.js b/node_modules/mz/readline.js
new file mode 100644
index 0000000..eb70c46
--- /dev/null
+++ b/node_modules/mz/readline.js
@@ -0,0 +1,64 @@
+var readline = require('readline')
+var Promise = require('any-promise')
+var objectAssign = require('object-assign')
+var Interface = readline.Interface
+
+function wrapCompleter (completer) {
+ if (completer.length === 2) return completer
+
+ return function (line, cb) {
+ var result = completer(line)
+
+ if (typeof result.then !== 'function') {
+ return cb(null, result)
+ }
+
+ result.catch(cb).then(function (result) {
+ process.nextTick(function () { cb(null, result) })
+ })
+ }
+}
+
+function InterfaceAsPromised (input, output, completer, terminal) {
+ if (arguments.length === 1) {
+ var options = input
+
+ if (typeof options.completer === 'function') {
+ options = objectAssign({}, options, {
+ completer: wrapCompleter(options.completer)
+ })
+ }
+
+ Interface.call(this, options)
+ } else {
+ if (typeof completer === 'function') {
+ completer = wrapCompleter(completer)
+ }
+
+ Interface.call(this, input, output, completer, terminal)
+ }
+}
+
+InterfaceAsPromised.prototype = Object.create(Interface.prototype)
+
+InterfaceAsPromised.prototype.question = function (question, callback) {
+ if (typeof callback === 'function') {
+ return Interface.prototype.question.call(this, question, callback)
+ }
+
+ var self = this
+ return new Promise(function (resolve) {
+ Interface.prototype.question.call(self, question, resolve)
+ })
+}
+
+objectAssign(exports, readline, {
+ Interface: InterfaceAsPromised,
+ createInterface: function (input, output, completer, terminal) {
+ if (arguments.length === 1) {
+ return new InterfaceAsPromised(input)
+ }
+
+ return new InterfaceAsPromised(input, output, completer, terminal)
+ }
+})
diff --git a/node_modules/mz/zlib.js b/node_modules/mz/zlib.js
new file mode 100644
index 0000000..a05c26a
--- /dev/null
+++ b/node_modules/mz/zlib.js
@@ -0,0 +1,13 @@
+
+require('thenify-all').withCallback(
+ require('zlib'),
+ exports, [
+ 'deflate',
+ 'deflateRaw',
+ 'gzip',
+ 'gunzip',
+ 'inflate',
+ 'inflateRaw',
+ 'unzip',
+ ]
+)