UNPKG

react-docgen

Version:

A library to extract information from React components for documentation generation.

36 lines (35 loc) 1.14 kB
import getPropertyValuePath from './getPropertyValuePath.js'; import resolveToValue from './resolveToValue.js'; function resolveToObjectExpression(path) { if (path.isVariableDeclarator()) { const init = path.get('init'); if (init.hasNode()) { return resolveToValue(init); } } else if (path.isAssignmentExpression()) { if (path.node.operator === '=') { return resolveToValue(path.get('right')); } } return null; } /** * Resolve and ObjectProperty inside an ObjectPattern to its value if possible * If not found `null` is returned */ export default function resolveObjectPatternPropertyToValue(path) { if (!path.parentPath.isObjectPattern()) { return null; } const resolved = resolveToObjectExpression(path.parentPath.parentPath); if (resolved && resolved.isObjectExpression()) { const propertyPath = getPropertyValuePath(resolved, // Always id in ObjectPattern path.get('key').node.name); if (propertyPath) { return resolveToValue(propertyPath); } } return null; }