UNPKG

moltres-utils

Version:
85 lines (67 loc) 2.55 kB
"use strict"; require("core-js/modules/es6.object.define-property"); Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; require("regenerator-runtime/runtime"); require("core-js/modules/es7.symbol.async-iterator"); require("core-js/modules/es6.symbol"); var _functionToString = _interopRequireDefault(require("./functionToString")); var _objectToString = _interopRequireDefault(require("./objectToString")); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } var isFnRegex = /^\s*(?:function)?\*/; var hasToStringTag = typeof Symbol === 'function' && _typeof(Symbol.toStringTag) === 'symbol'; var getProto = Object.getPrototypeOf; var getGeneratorFunc = function getGeneratorFunc() { // eslint-disable-line consistent-return if (!hasToStringTag) { return false; } return ( /*#__PURE__*/ regeneratorRuntime.mark(function _callee() { return regeneratorRuntime.wrap(function _callee$(_context) { while (1) { switch (_context.prev = _context.next) { case 0: case "end": return _context.stop(); } } }, _callee, this); }) ); }; var generatorFunc = getGeneratorFunc(); var GeneratorFunction = generatorFunc ? getProto(generatorFunc) : {}; /** * Checks whether a function is generator function. * * @function * @since v0.0.3 * @category lang * @param {*} value The value to check. * @returns {boolean} Returns `true` if `value` is a generator function, else `false`. * @example * * isGeneratorFunction(function*() {}) //=> true * isGeneratorFunction(function() {}) //=> false */ var isGeneratorFunction = function isGeneratorFunction(value) { if (typeof value !== 'function') { return false; } if (isFnRegex.test((0, _functionToString.default)(value))) { return true; } if (!hasToStringTag) { var str = (0, _objectToString.default)(value); return str === '[object GeneratorFunction]'; } return getProto(value) === GeneratorFunction; }; var _default = isGeneratorFunction; exports.default = _default; //# sourceMappingURL=isGeneratorFunction.js.map