Security upgrades
This commit is contained in:
77
node_modules/@material-ui/utils/getDisplayName.js
generated
vendored
Normal file
77
node_modules/@material-ui/utils/getDisplayName.js
generated
vendored
Normal file
@@ -0,0 +1,77 @@
|
||||
"use strict";
|
||||
|
||||
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.getFunctionName = getFunctionName;
|
||||
exports.default = getDisplayName;
|
||||
|
||||
var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
|
||||
|
||||
var _reactIs = require("react-is");
|
||||
|
||||
// Simplified polyfill for IE 11 support
|
||||
// https://github.com/JamesMGreene/Function.name/blob/58b314d4a983110c3682f1228f845d39ccca1817/Function.name.js#L3
|
||||
var fnNameMatchRegex = /^\s*function(?:\s|\s*\/\*.*\*\/\s*)+([^(\s/]*)\s*/;
|
||||
|
||||
function getFunctionName(fn) {
|
||||
var match = "".concat(fn).match(fnNameMatchRegex);
|
||||
var name = match && match[1];
|
||||
return name || '';
|
||||
}
|
||||
/**
|
||||
* @param {function} Component
|
||||
* @param {string} fallback
|
||||
* @returns {string | undefined}
|
||||
*/
|
||||
|
||||
|
||||
function getFunctionComponentName(Component) {
|
||||
var fallback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';
|
||||
return Component.displayName || Component.name || getFunctionName(Component) || fallback;
|
||||
}
|
||||
|
||||
function getWrappedName(outerType, innerType, wrapperName) {
|
||||
var functionName = getFunctionComponentName(innerType);
|
||||
return outerType.displayName || (functionName !== '' ? "".concat(wrapperName, "(").concat(functionName, ")") : wrapperName);
|
||||
}
|
||||
/**
|
||||
* cherry-pick from
|
||||
* https://github.com/facebook/react/blob/769b1f270e1251d9dbdce0fcbd9e92e502d059b8/packages/shared/getComponentName.js
|
||||
* originally forked from recompose/getDisplayName with added IE 11 support
|
||||
*
|
||||
* @param {React.ReactType} Component
|
||||
* @returns {string | undefined}
|
||||
*/
|
||||
|
||||
|
||||
function getDisplayName(Component) {
|
||||
if (Component == null) {
|
||||
return undefined;
|
||||
}
|
||||
|
||||
if (typeof Component === 'string') {
|
||||
return Component;
|
||||
}
|
||||
|
||||
if (typeof Component === 'function') {
|
||||
return getFunctionComponentName(Component, 'Component');
|
||||
}
|
||||
|
||||
if ((0, _typeof2.default)(Component) === 'object') {
|
||||
switch (Component.$$typeof) {
|
||||
case _reactIs.ForwardRef:
|
||||
return getWrappedName(Component, Component.render, 'ForwardRef');
|
||||
|
||||
case _reactIs.Memo:
|
||||
return getWrappedName(Component, Component.type, 'memo');
|
||||
|
||||
default:
|
||||
return undefined;
|
||||
}
|
||||
}
|
||||
|
||||
return undefined;
|
||||
}
|
||||
Reference in New Issue
Block a user