Skip to main content
Glama
index.js•1.27 kB
'use strict'; var callBound = require('call-bound'); var safeRegexTest = require('safe-regex-test'); var isFnRegex = safeRegexTest(/^\s*(?:function)?\*/); var hasToStringTag = require('has-tostringtag/shams')(); var getProto = require('get-proto'); var toStr = callBound('Object.prototype.toString'); var fnToStr = callBound('Function.prototype.toString'); var getGeneratorFunc = function () { // eslint-disable-line consistent-return if (!hasToStringTag) { return false; } try { return Function('return function*() {}')(); } catch (e) { } }; /** @type {undefined | false | null | GeneratorFunctionConstructor} */ var GeneratorFunction; /** @type {import('.')} */ module.exports = function isGeneratorFunction(fn) { if (typeof fn !== 'function') { return false; } if (isFnRegex(fnToStr(fn))) { return true; } if (!hasToStringTag) { var str = toStr(fn); return str === '[object GeneratorFunction]'; } if (!getProto) { return false; } if (typeof GeneratorFunction === 'undefined') { var generatorFunc = getGeneratorFunc(); GeneratorFunction = generatorFunc // eslint-disable-next-line no-extra-parens ? /** @type {GeneratorFunctionConstructor} */ (getProto(generatorFunc)) : false; } return getProto(fn) === GeneratorFunction; };

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/guangxiangdebizi/PPT-MCP'

If you have feedback or need assistance with the MCP directory API, please join our Discord server