Repository URL to install this package:
|
Version:
3.0.0 ▾
|
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const exotic_1 = require("exotic");
// else if (component.identifier) {
// // @todo or @@identifier
// return component.identifier
// }
function toReactInstanceName(component) {
// react instance
let type = component;
let name = toComponentName(component.type);
// console.warn('______________')
// console.log({ component, name })
// console.warn('______________')
// ' ^ ' + type.displayName
// while (type._owner) {
// type = type._owner
// recursion yay!
name += ' ^ ' + toComponentName(type._owner);
// }
// console.debug('______________')
// console.log({ component, name })
// return toComponentName(component.type)
return name;
}
// eslint-disable-next-line
function toComponentName(component, fallback = 'no-name') {
if (exotic_1.isNil(component)) {
// @@nil
return '';
}
else if (!exotic_1.isObj(component)) {
return component;
}
else if (!Object.isExtensible(component) && exotic_1.isObj(component.type)) {
return toReactInstanceName(component);
}
else if (exotic_1.isArray(component)) {
return component.map(toComponentName).join('-');
}
else if (exotic_1.isString(component.displayName)) {
return component.displayName;
}
else if (component.constructor.name === 'Function' ||
component.constructor.name === 'Object') {
return component.name || fallback;
}
else {
return component.constructor.name || fallback;
}
}
exports.toComponentName = toComponentName;
exports.getDisplayName = toComponentName;
exports.getClassName = toComponentName;
exports.getName = toComponentName;
exports.default = toComponentName;
//# sourceMappingURL=toComponentName.js.map