You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
30 lines
581 B
30 lines
581 B
/**
|
|
* 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'
|
|
}
|