"use strict";
|
|
Object.defineProperty(exports, "__esModule", {
|
value: true
|
});
|
exports.default = getFunctionName;
|
var _index = require("../validators/generated/index.js");
|
function getNameFromLiteralId(id) {
|
if ((0, _index.isNullLiteral)(id)) {
|
return "null";
|
}
|
if ((0, _index.isRegExpLiteral)(id)) {
|
return `/${id.pattern}/${id.flags}`;
|
}
|
if ((0, _index.isTemplateLiteral)(id)) {
|
return id.quasis.map(quasi => quasi.value.raw).join("");
|
}
|
if (id.value !== undefined) {
|
return String(id.value);
|
}
|
return null;
|
}
|
function getObjectMemberKey(node) {
|
if (!node.computed || (0, _index.isLiteral)(node.key)) {
|
return node.key;
|
}
|
}
|
function getFunctionName(node, parent) {
|
if ("id" in node && node.id) {
|
return {
|
name: node.id.name,
|
originalNode: node.id
|
};
|
}
|
let prefix = "";
|
let id;
|
if ((0, _index.isObjectProperty)(parent, {
|
value: node
|
})) {
|
id = getObjectMemberKey(parent);
|
} else if ((0, _index.isObjectMethod)(node) || (0, _index.isClassMethod)(node)) {
|
id = getObjectMemberKey(node);
|
if (node.kind === "get") prefix = "get ";else if (node.kind === "set") prefix = "set ";
|
} else if ((0, _index.isVariableDeclarator)(parent, {
|
init: node
|
})) {
|
id = parent.id;
|
} else if ((0, _index.isAssignmentExpression)(parent, {
|
operator: "=",
|
right: node
|
})) {
|
id = parent.left;
|
}
|
if (!id) return null;
|
const name = (0, _index.isLiteral)(id) ? getNameFromLiteralId(id) : (0, _index.isIdentifier)(id) ? id.name : (0, _index.isPrivateName)(id) ? id.id.name : null;
|
if (name == null) return null;
|
return {
|
name: prefix + name,
|
originalNode: id
|
};
|
}
|
|
//# sourceMappingURL=getFunctionName.js.map
|