48 lines
1.3 KiB
Plaintext
48 lines
1.3 KiB
Plaintext
|
'use strict';
|
||
|
|
||
|
Object.defineProperty(exports, "__esModule", {
|
||
|
value: true
|
||
|
});
|
||
|
exports.default = elementType;
|
||
|
function resolveMemberExpressions() {
|
||
|
var object = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
||
|
var property = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
||
|
|
||
|
if (object.type === 'JSXMemberExpression') {
|
||
|
return resolveMemberExpressions(object.object, object.property) + '.' + property.name;
|
||
|
}
|
||
|
|
||
|
return object.name + '.' + property.name;
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Returns the tagName associated with a JSXElement.
|
||
|
*/
|
||
|
function elementType() {
|
||
|
var node = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
||
|
var name = node.name;
|
||
|
|
||
|
|
||
|
if (node.type === 'JSXOpeningFragment') {
|
||
|
return '<>';
|
||
|
}
|
||
|
|
||
|
if (!name) {
|
||
|
throw new Error('The argument provided is not a JSXElement node.');
|
||
|
}
|
||
|
|
||
|
if (name.type === 'JSXMemberExpression') {
|
||
|
var _name$object = name.object,
|
||
|
object = _name$object === undefined ? {} : _name$object,
|
||
|
_name$property = name.property,
|
||
|
property = _name$property === undefined ? {} : _name$property;
|
||
|
|
||
|
return resolveMemberExpressions(object, property);
|
||
|
}
|
||
|
|
||
|
if (name.type === 'JSXNamespacedName') {
|
||
|
return name.namespace.name + ':' + name.name.name;
|
||
|
}
|
||
|
|
||
|
return node.name.name;
|
||
|
}
|