30 lines
581 B
JavaScript
30 lines
581 B
JavaScript
/**
|
|
* Export generator function checks.
|
|
*/
|
|
module.exports = isGenerator
|
|
module.exports.fn = isGeneratorFunction
|
|
|
|
/**
|
|
* Check whether an object is a generator.
|
|
*
|
|
* @param {Object} obj
|
|
* @return {Boolean}
|
|
*/
|
|
function isGenerator (obj) {
|
|
return obj &&
|
|
typeof obj.next === 'function' &&
|
|
typeof obj.throw === 'function'
|
|
}
|
|
|
|
/**
|
|
* Check whether a function is generator.
|
|
*
|
|
* @param {Function} fn
|
|
* @return {Boolean}
|
|
*/
|
|
function isGeneratorFunction (fn) {
|
|
return typeof fn === 'function' &&
|
|
fn.constructor &&
|
|
fn.constructor.name === 'GeneratorFunction'
|
|
}
|