is-class-hotfix
Version:
Check if function is an ES6 class.
29 lines (24 loc) • 733 B
JavaScript
(function(root) {
var toString = Function.prototype.toString;
function fnBody(fn) {
return toString.call(fn).replace(/^[^{]*{\s*/,'').replace(/\s*}[^}]*$/,'');
}
function isClass(fn) {
return (typeof fn === 'function' &&
(/^class(?:\s|{)/.test(toString.call(fn)) ||
(/^.*classCallCheck\(/.test(fnBody(fn)))) // babel.js
);
}
if (typeof exports !== 'undefined') {
if (typeof module !== 'undefined' && module.exports) {
exports = module.exports = isClass;
}
exports.isClass = isClass;
} else if (typeof define === 'function' && define.amd) {
define([], function() {
return isClass;
});
} else {
root.isClass = isClass;
}
})(this);