diff options
Diffstat (limited to 'node_modules/co')
-rw-r--r-- | node_modules/co/History.md | 172 | ||||
-rw-r--r-- | node_modules/co/LICENSE | 22 | ||||
-rw-r--r-- | node_modules/co/Readme.md | 212 | ||||
-rw-r--r-- | node_modules/co/index.js | 237 | ||||
-rw-r--r-- | node_modules/co/package.json | 34 |
5 files changed, 0 insertions, 677 deletions
diff --git a/node_modules/co/History.md b/node_modules/co/History.md deleted file mode 100644 index 68fbb154d..000000000 --- a/node_modules/co/History.md +++ /dev/null @@ -1,172 +0,0 @@ -4.6.0 / 2015-07-09 -================== - - * support passing the rest of the arguments to co into the generator - - ```js - function *gen(...args) { } - co(gen, ...args); - ``` - -4.5.0 / 2015-03-17 -================== - - * support regular functions (that return promises) - -4.4.0 / 2015-02-14 -================== - - * refactor `isGeneratorFunction` - * expose generator function from `co.wrap()` - * drop support for node < 0.12 - -4.3.0 / 2015-02-05 -================== - - * check for generator functions in a ES5-transpiler-friendly way - -4.2.0 / 2015-01-20 -================== - - * support comparing generator functions with ES6 transpilers - -4.1.0 / 2014-12-26 -================== - - * fix memory leak #180 - -4.0.2 / 2014-12-18 -================== - - * always return a global promise implementation - -4.0.1 / 2014-11-30 -================== - - * friendlier ES6 module exports - -4.0.0 / 2014-11-15 -================== - - * co now returns a promise and uses promises underneath - * `co.wrap()` for wrapping generator functions - -3.1.0 / 2014-06-30 -================== - - * remove `setImmediate()` shim for node 0.8. semi-backwards breaking. - Users are expected to shim themselves. Also returns CommonJS browser support. - * added key order preservation for objects. thanks @greim - * replace `q` with `bluebird` in benchmarks and tests - -3.0.6 / 2014-05-03 -================== - - * add `setImmediate()` fallback to `process.nextTick` - * remove duplicate code in toThunk - * update thunkify - -3.0.5 / 2014-03-17 -================== - - * fix object/array test failure which tries to enumerate dates. Closes #98 - * fix final callback error propagation. Closes #92 - -3.0.4 / 2014-02-17 -================== - - * fix toThunk object check regression. Closes #89 - -3.0.3 / 2014-02-08 -================== - - * refactor: arrayToThunk @AutoSponge #88 - -3.0.2 / 2014-01-01 -================== - - * fixed: nil arguments replaced with error fn - -3.0.1 / 2013-12-19 -================== - - * fixed: callback passed as an argument to generators - -3.0.0 / 2013-12-19 -================== - - * fixed: callback passed as an argument to generators - * change: `co(function *(){})` now returns a reusable thunk - * change: `this` must now be passed through the returned thunk, ex. `co(function *(){}).call(this)` - * fix "generator already finished" errors - -2.3.0 / 2013-11-12 -================== - - * add `yield object` support - -2.2.0 / 2013-11-05 -================== - - * change: make the `isGenerator()` function more generic - -2.1.0 / 2013-10-21 -================== - - * add passing of arguments into the generator. closes #33. - -2.0.0 / 2013-10-14 -================== - - * remove callback in favour of thunk-only co(). Closes #30 [breaking change] - * remove `co.wrap()` [breaking change] - -1.5.2 / 2013-09-02 -================== - - * fix: preserve receiver with co.wrap() - -1.5.1 / 2013-08-11 -================== - - * remove setImmediate() usage - ~110% perf increase. Closes #14 - -0.5.0 / 2013-08-10 -================== - - * add receiver propagation support - * examples: update streams.js example to use `http.get()` and streams2 API - -1.4.1 / 2013-07-01 -================== - - * fix gen.next(val) for latest v8. Closes #8 - -1.4.0 / 2013-06-21 -================== - - * add promise support to joins - * add `yield generatorFunction` support - * add `yield generator` support - * add nested join support - -1.3.0 / 2013-06-10 -================== - - * add passing of arguments - -1.2.1 / 2013-06-08 -================== - - * fix join() of zero thunks - -1.2.0 / 2013-06-08 -================== - - * add array yielding support. great suggestion by @domenic - -1.1.0 / 2013-06-06 -================== - - * add promise support - * change nextTick to setImmediate diff --git a/node_modules/co/LICENSE b/node_modules/co/LICENSE deleted file mode 100644 index 92faba5db..000000000 --- a/node_modules/co/LICENSE +++ /dev/null @@ -1,22 +0,0 @@ -(The MIT License) - -Copyright (c) 2014 TJ Holowaychuk <tj@vision-media.ca> - -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/co/Readme.md b/node_modules/co/Readme.md deleted file mode 100644 index c1d4882a1..000000000 --- a/node_modules/co/Readme.md +++ /dev/null @@ -1,212 +0,0 @@ -# co - -[![Gitter][gitter-image]][gitter-url] -[![NPM version][npm-image]][npm-url] -[![Build status][travis-image]][travis-url] -[![Test coverage][coveralls-image]][coveralls-url] -[![Downloads][downloads-image]][downloads-url] - - Generator based control flow goodness for nodejs and the browser, - using promises, letting you write non-blocking code in a nice-ish way. - -## Co v4 - - `co@4.0.0` has been released, which now relies on promises. - It is a stepping stone towards [ES7 async/await](https://github.com/lukehoban/ecmascript-asyncawait). - The primary API change is how `co()` is invoked. - Before, `co` returned a "thunk", which you then called with a callback and optional arguments. - Now, `co()` returns a promise. - -```js -co(function* () { - var result = yield Promise.resolve(true); - return result; -}).then(function (value) { - console.log(value); -}, function (err) { - console.error(err.stack); -}); -``` - - If you want to convert a `co`-generator-function into a regular function that returns a promise, - you now use `co.wrap(fn*)`. - -```js -var fn = co.wrap(function* (val) { - return yield Promise.resolve(val); -}); - -fn(true).then(function (val) { - -}); -``` - -## Platform Compatibility - - `co@4+` requires a `Promise` implementation. - For versions of node `< 0.11` and for many older browsers, - you should/must include your own `Promise` polyfill. - - When using node 0.11.x or greater, you must use the `--harmony-generators` - flag or just `--harmony` to get access to generators. - - When using node 0.10.x and lower or browsers without generator support, - you must use [gnode](https://github.com/TooTallNate/gnode) and/or [regenerator](http://facebook.github.io/regenerator/). - - io.js is supported out of the box, you can use `co` without flags or polyfills. - -## Installation - -``` -$ npm install co -``` - -## Associated libraries - -Any library that returns promises work well with `co`. - -- [mz](https://github.com/normalize/mz) - wrap all of node's code libraries as promises. - -View the [wiki](https://github.com/visionmedia/co/wiki) for more libraries. - -## Examples - -```js -var co = require('co'); - -co(function *(){ - // yield any promise - var result = yield Promise.resolve(true); -}).catch(onerror); - -co(function *(){ - // resolve multiple promises in parallel - var a = Promise.resolve(1); - var b = Promise.resolve(2); - var c = Promise.resolve(3); - var res = yield [a, b, c]; - console.log(res); - // => [1, 2, 3] -}).catch(onerror); - -// errors can be try/catched -co(function *(){ - try { - yield Promise.reject(new Error('boom')); - } catch (err) { - console.error(err.message); // "boom" - } -}).catch(onerror); - -function onerror(err) { - // log any uncaught errors - // co will not throw any errors you do not handle!!! - // HANDLE ALL YOUR ERRORS!!! - console.error(err.stack); -} -``` - -## Yieldables - - The `yieldable` objects currently supported are: - - - promises - - thunks (functions) - - array (parallel execution) - - objects (parallel execution) - - generators (delegation) - - generator functions (delegation) - -Nested `yieldable` objects are supported, meaning you can nest -promises within objects within arrays, and so on! - -### Promises - -[Read more on promises!](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise) - -### Thunks - -Thunks are functions that only have a single argument, a callback. -Thunk support only remains for backwards compatibility and may -be removed in future versions of `co`. - -### Arrays - -`yield`ing an array will resolve all the `yieldables` in parallel. - -```js -co(function* () { - var res = yield [ - Promise.resolve(1), - Promise.resolve(2), - Promise.resolve(3), - ]; - console.log(res); // => [1, 2, 3] -}).catch(onerror); -``` - -### Objects - -Just like arrays, objects resolve all `yieldable`s in parallel. - -```js -co(function* () { - var res = yield { - 1: Promise.resolve(1), - 2: Promise.resolve(2), - }; - console.log(res); // => { 1: 1, 2: 2 } -}).catch(onerror); -``` - -### Generators and Generator Functions - -Any generator or generator function you can pass into `co` -can be yielded as well. This should generally be avoided -as we should be moving towards spec-compliant `Promise`s instead. - -## API - -### co(fn*).then( val => ) - -Returns a promise that resolves a generator, generator function, -or any function that returns a generator. - -```js -co(function* () { - return yield Promise.resolve(true); -}).then(function (val) { - console.log(val); -}, function (err) { - console.error(err.stack); -}); -``` - -### var fn = co.wrap(fn*) - -Convert a generator into a regular function that returns a `Promise`. - -```js -var fn = co.wrap(function* (val) { - return yield Promise.resolve(val); -}); - -fn(true).then(function (val) { - -}); -``` - -## License - - MIT - -[npm-image]: https://img.shields.io/npm/v/co.svg?style=flat-square -[npm-url]: https://npmjs.org/package/co -[travis-image]: https://img.shields.io/travis/tj/co.svg?style=flat-square -[travis-url]: https://travis-ci.org/tj/co -[coveralls-image]: https://img.shields.io/coveralls/tj/co.svg?style=flat-square -[coveralls-url]: https://coveralls.io/r/tj/co -[downloads-image]: http://img.shields.io/npm/dm/co.svg?style=flat-square -[downloads-url]: https://npmjs.org/package/co -[gitter-image]: https://badges.gitter.im/Join%20Chat.svg -[gitter-url]: https://gitter.im/tj/co?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge diff --git a/node_modules/co/index.js b/node_modules/co/index.js deleted file mode 100644 index 87ba8ba8b..000000000 --- a/node_modules/co/index.js +++ /dev/null @@ -1,237 +0,0 @@ - -/** - * slice() reference. - */ - -var slice = Array.prototype.slice; - -/** - * Expose `co`. - */ - -module.exports = co['default'] = co.co = co; - -/** - * Wrap the given generator `fn` into a - * function that returns a promise. - * This is a separate function so that - * every `co()` call doesn't create a new, - * unnecessary closure. - * - * @param {GeneratorFunction} fn - * @return {Function} - * @api public - */ - -co.wrap = function (fn) { - createPromise.__generatorFunction__ = fn; - return createPromise; - function createPromise() { - return co.call(this, fn.apply(this, arguments)); - } -}; - -/** - * Execute the generator function or a generator - * and return a promise. - * - * @param {Function} fn - * @return {Promise} - * @api public - */ - -function co(gen) { - var ctx = this; - var args = slice.call(arguments, 1) - - // we wrap everything in a promise to avoid promise chaining, - // which leads to memory leak errors. - // see https://github.com/tj/co/issues/180 - return new Promise(function(resolve, reject) { - if (typeof gen === 'function') gen = gen.apply(ctx, args); - if (!gen || typeof gen.next !== 'function') return resolve(gen); - - onFulfilled(); - - /** - * @param {Mixed} res - * @return {Promise} - * @api private - */ - - function onFulfilled(res) { - var ret; - try { - ret = gen.next(res); - } catch (e) { - return reject(e); - } - next(ret); - } - - /** - * @param {Error} err - * @return {Promise} - * @api private - */ - - function onRejected(err) { - var ret; - try { - ret = gen.throw(err); - } catch (e) { - return reject(e); - } - next(ret); - } - - /** - * Get the next value in the generator, - * return a promise. - * - * @param {Object} ret - * @return {Promise} - * @api private - */ - - function next(ret) { - if (ret.done) return resolve(ret.value); - var value = toPromise.call(ctx, ret.value); - if (value && isPromise(value)) return value.then(onFulfilled, onRejected); - return onRejected(new TypeError('You may only yield a function, promise, generator, array, or object, ' - + 'but the following object was passed: "' + String(ret.value) + '"')); - } - }); -} - -/** - * Convert a `yield`ed value into a promise. - * - * @param {Mixed} obj - * @return {Promise} - * @api private - */ - -function toPromise(obj) { - if (!obj) return obj; - if (isPromise(obj)) return obj; - if (isGeneratorFunction(obj) || isGenerator(obj)) return co.call(this, obj); - if ('function' == typeof obj) return thunkToPromise.call(this, obj); - if (Array.isArray(obj)) return arrayToPromise.call(this, obj); - if (isObject(obj)) return objectToPromise.call(this, obj); - return obj; -} - -/** - * Convert a thunk to a promise. - * - * @param {Function} - * @return {Promise} - * @api private - */ - -function thunkToPromise(fn) { - var ctx = this; - return new Promise(function (resolve, reject) { - fn.call(ctx, function (err, res) { - if (err) return reject(err); - if (arguments.length > 2) res = slice.call(arguments, 1); - resolve(res); - }); - }); -} - -/** - * Convert an array of "yieldables" to a promise. - * Uses `Promise.all()` internally. - * - * @param {Array} obj - * @return {Promise} - * @api private - */ - -function arrayToPromise(obj) { - return Promise.all(obj.map(toPromise, this)); -} - -/** - * Convert an object of "yieldables" to a promise. - * Uses `Promise.all()` internally. - * - * @param {Object} obj - * @return {Promise} - * @api private - */ - -function objectToPromise(obj){ - var results = new obj.constructor(); - var keys = Object.keys(obj); - var promises = []; - for (var i = 0; i < keys.length; i++) { - var key = keys[i]; - var promise = toPromise.call(this, obj[key]); - if (promise && isPromise(promise)) defer(promise, key); - else results[key] = obj[key]; - } - return Promise.all(promises).then(function () { - return results; - }); - - function defer(promise, key) { - // predefine the key in the result - results[key] = undefined; - promises.push(promise.then(function (res) { - results[key] = res; - })); - } -} - -/** - * Check if `obj` is a promise. - * - * @param {Object} obj - * @return {Boolean} - * @api private - */ - -function isPromise(obj) { - return 'function' == typeof obj.then; -} - -/** - * Check if `obj` is a generator. - * - * @param {Mixed} obj - * @return {Boolean} - * @api private - */ - -function isGenerator(obj) { - return 'function' == typeof obj.next && 'function' == typeof obj.throw; -} - -/** - * Check if `obj` is a generator function. - * - * @param {Mixed} obj - * @return {Boolean} - * @api private - */ -function isGeneratorFunction(obj) { - var constructor = obj.constructor; - if (!constructor) return false; - if ('GeneratorFunction' === constructor.name || 'GeneratorFunction' === constructor.displayName) return true; - return isGenerator(constructor.prototype); -} - -/** - * Check for plain object. - * - * @param {Mixed} val - * @return {Boolean} - * @api private - */ - -function isObject(val) { - return Object == val.constructor; -} diff --git a/node_modules/co/package.json b/node_modules/co/package.json deleted file mode 100644 index 083d59409..000000000 --- a/node_modules/co/package.json +++ /dev/null @@ -1,34 +0,0 @@ -{ - "name": "co", - "version": "4.6.0", - "description": "generator async control flow goodness", - "keywords": [ - "async", - "flow", - "generator", - "coro", - "coroutine" - ], - "devDependencies": { - "browserify": "^10.0.0", - "istanbul-harmony": "0", - "mocha": "^2.0.0", - "mz": "^1.0.2" - }, - "scripts": { - "test": "mocha --harmony", - "test-cov": "node --harmony node_modules/.bin/istanbul cover ./node_modules/.bin/_mocha -- --reporter dot", - "test-travis": "node --harmony node_modules/.bin/istanbul cover ./node_modules/.bin/_mocha --report lcovonly -- --reporter dot", - "prepublish": "npm run browserify", - "browserify": "browserify index.js -o ./co-browser.js -s co" - }, - "files": [ - "index.js" - ], - "license": "MIT", - "repository": "tj/co", - "engines": { - "iojs": ">= 1.0.0", - "node": ">= 0.12.0" - } -} |