init
This commit is contained in:
		
							
								
								
									
										20
									
								
								node_modules/universalify/LICENSE
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										20
									
								
								node_modules/universalify/LICENSE
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,20 @@
 | 
			
		||||
(The MIT License)
 | 
			
		||||
 | 
			
		||||
Copyright (c) 2017, Ryan Zimmerman <opensrc@ryanzim.com>
 | 
			
		||||
 | 
			
		||||
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.
 | 
			
		||||
							
								
								
									
										76
									
								
								node_modules/universalify/README.md
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										76
									
								
								node_modules/universalify/README.md
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,76 @@
 | 
			
		||||
# universalify
 | 
			
		||||
 | 
			
		||||
[](https://travis-ci.org/RyanZim/universalify)
 | 
			
		||||

 | 
			
		||||

 | 
			
		||||

 | 
			
		||||
 | 
			
		||||
Make a callback- or promise-based function support both promises and callbacks.
 | 
			
		||||
 | 
			
		||||
Uses the native promise implementation.
 | 
			
		||||
 | 
			
		||||
## Installation
 | 
			
		||||
 | 
			
		||||
```bash
 | 
			
		||||
npm install universalify
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
## API
 | 
			
		||||
 | 
			
		||||
### `universalify.fromCallback(fn)`
 | 
			
		||||
 | 
			
		||||
Takes a callback-based function to universalify, and returns the universalified  function.
 | 
			
		||||
 | 
			
		||||
Function must take a callback as the last parameter that will be called with the signature `(error, result)`. `universalify` does not support calling the callback with more than three arguments, and does not ensure that the callback is only called once.
 | 
			
		||||
 | 
			
		||||
```js
 | 
			
		||||
function callbackFn (n, cb) {
 | 
			
		||||
  setTimeout(() => cb(null, n), 15)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
const fn = universalify.fromCallback(callbackFn)
 | 
			
		||||
 | 
			
		||||
// Works with Promises:
 | 
			
		||||
fn('Hello World!')
 | 
			
		||||
.then(result => console.log(result)) // -> Hello World!
 | 
			
		||||
.catch(error => console.error(error))
 | 
			
		||||
 | 
			
		||||
// Works with Callbacks:
 | 
			
		||||
fn('Hi!', (error, result) => {
 | 
			
		||||
  if (error) return console.error(error)
 | 
			
		||||
  console.log(result)
 | 
			
		||||
  // -> Hi!
 | 
			
		||||
})
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
### `universalify.fromPromise(fn)`
 | 
			
		||||
 | 
			
		||||
Takes a promise-based function to universalify, and returns the universalified  function.
 | 
			
		||||
 | 
			
		||||
Function must return a valid JS promise. `universalify` does not ensure that a valid promise is returned.
 | 
			
		||||
 | 
			
		||||
```js
 | 
			
		||||
function promiseFn (n) {
 | 
			
		||||
  return new Promise(resolve => {
 | 
			
		||||
    setTimeout(() => resolve(n), 15)
 | 
			
		||||
  })
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
const fn = universalify.fromPromise(promiseFn)
 | 
			
		||||
 | 
			
		||||
// Works with Promises:
 | 
			
		||||
fn('Hello World!')
 | 
			
		||||
.then(result => console.log(result)) // -> Hello World!
 | 
			
		||||
.catch(error => console.error(error))
 | 
			
		||||
 | 
			
		||||
// Works with Callbacks:
 | 
			
		||||
fn('Hi!', (error, result) => {
 | 
			
		||||
  if (error) return console.error(error)
 | 
			
		||||
  console.log(result)
 | 
			
		||||
  // -> Hi!
 | 
			
		||||
})
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
## License
 | 
			
		||||
 | 
			
		||||
MIT
 | 
			
		||||
							
								
								
									
										25
									
								
								node_modules/universalify/index.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										25
									
								
								node_modules/universalify/index.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,25 @@
 | 
			
		||||
'use strict'
 | 
			
		||||
 | 
			
		||||
exports.fromCallback = function (fn) {
 | 
			
		||||
  return Object.defineProperty(function () {
 | 
			
		||||
    if (typeof arguments[arguments.length - 1] === 'function') fn.apply(this, arguments)
 | 
			
		||||
    else {
 | 
			
		||||
      return new Promise((resolve, reject) => {
 | 
			
		||||
        arguments[arguments.length] = (err, res) => {
 | 
			
		||||
          if (err) return reject(err)
 | 
			
		||||
          resolve(res)
 | 
			
		||||
        }
 | 
			
		||||
        arguments.length++
 | 
			
		||||
        fn.apply(this, arguments)
 | 
			
		||||
      })
 | 
			
		||||
    }
 | 
			
		||||
  }, 'name', { value: fn.name })
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
exports.fromPromise = function (fn) {
 | 
			
		||||
  return Object.defineProperty(function () {
 | 
			
		||||
    const cb = arguments[arguments.length - 1]
 | 
			
		||||
    if (typeof cb !== 'function') return fn.apply(this, arguments)
 | 
			
		||||
    else fn.apply(this, arguments).then(r => cb(null, r), cb)
 | 
			
		||||
  }, 'name', { value: fn.name })
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										34
									
								
								node_modules/universalify/package.json
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										34
									
								
								node_modules/universalify/package.json
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,34 @@
 | 
			
		||||
{
 | 
			
		||||
  "name": "universalify",
 | 
			
		||||
  "version": "0.1.2",
 | 
			
		||||
  "description": "Make a callback- or promise-based function support both promises and callbacks.",
 | 
			
		||||
  "keywords": [
 | 
			
		||||
    "callback",
 | 
			
		||||
    "native",
 | 
			
		||||
    "promise"
 | 
			
		||||
  ],
 | 
			
		||||
  "homepage": "https://github.com/RyanZim/universalify#readme",
 | 
			
		||||
  "bugs": "https://github.com/RyanZim/universalify/issues",
 | 
			
		||||
  "license": "MIT",
 | 
			
		||||
  "author": "Ryan Zimmerman <opensrc@ryanzim.com>",
 | 
			
		||||
  "files": [
 | 
			
		||||
    "index.js"
 | 
			
		||||
  ],
 | 
			
		||||
  "repository": {
 | 
			
		||||
    "type": "git",
 | 
			
		||||
    "url": "git+https://github.com/RyanZim/universalify.git"
 | 
			
		||||
  },
 | 
			
		||||
  "scripts": {
 | 
			
		||||
    "test": "standard && nyc tape test/*.js | colortape"
 | 
			
		||||
  },
 | 
			
		||||
  "devDependencies": {
 | 
			
		||||
    "colortape": "^0.1.2",
 | 
			
		||||
    "coveralls": "^3.0.1",
 | 
			
		||||
    "nyc": "^10.2.0",
 | 
			
		||||
    "standard": "^10.0.1",
 | 
			
		||||
    "tape": "^4.6.3"
 | 
			
		||||
  },
 | 
			
		||||
  "engines": {
 | 
			
		||||
    "node": ">= 4.0.0"
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
		Reference in New Issue
	
	Block a user