moltres-utils
Version:
Utils for Moltres apps
85 lines (67 loc) • 2.55 kB
JavaScript
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
;