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);
|
||
|
}
|
||
|
}
|