33 lines
487 B
JavaScript
33 lines
487 B
JavaScript
/**
|
|
* Module Dependencies
|
|
*/
|
|
|
|
var co = require('co');
|
|
var slice = [].slice;
|
|
|
|
/**
|
|
* Expose `unyield`
|
|
*/
|
|
|
|
module.exports = unyield;
|
|
|
|
/**
|
|
* Unyield
|
|
*
|
|
* @param {Generator} gen
|
|
* @return {Function}
|
|
* @api public
|
|
*/
|
|
|
|
function unyield(gen) {
|
|
return function() {
|
|
var args = slice.call(arguments);
|
|
var last = args[args.length - 1];
|
|
var fn = 'function' == typeof last && last;
|
|
|
|
return fn
|
|
? co(gen).apply(this, arguments)
|
|
: gen.apply(this, arguments);
|
|
}
|
|
}
|