storybook-framework-cedarjs
Version:
Storybook for CedarJS
35 lines (34 loc) • 1.35 kB
JavaScript
import { utils } from "react-docgen";
const { getNameOrValue, isReactForwardRefCall } = utils;
const actualNameHandler = function actualNameHandler2(documentation, componentDefinition) {
if ((componentDefinition.isClassDeclaration() || componentDefinition.isFunctionDeclaration()) && componentDefinition.has("id")) {
documentation.set(
"actualName",
getNameOrValue(componentDefinition.get("id"))
);
} else if (componentDefinition.isArrowFunctionExpression() || componentDefinition.isFunctionExpression() || isReactForwardRefCall(componentDefinition)) {
let currentPath = componentDefinition;
while (currentPath.parentPath) {
if (currentPath.parentPath.isVariableDeclarator()) {
documentation.set(
"actualName",
getNameOrValue(currentPath.parentPath.get("id"))
);
return;
}
if (currentPath.parentPath.isAssignmentExpression()) {
const leftPath = currentPath.parentPath.get("left");
if (leftPath.isIdentifier() || leftPath.isLiteral()) {
documentation.set("actualName", getNameOrValue(leftPath));
return;
}
}
currentPath = currentPath.parentPath;
}
documentation.set("actualName", "");
}
};
var actualNameHandler_default = actualNameHandler;
export {
actualNameHandler_default as default
};