in src/handlers/defaultPropsHandler.ts [138:169]
export default function defaultPropsHandler(
documentation: Documentation,
componentDefinition: NodePath,
importer: Importer,
): void {
let statelessProps: NodePath | null = null;
const defaultPropsPath = getDefaultPropsPath(componentDefinition, importer);
/**
* function, lazy, memo, forwardRef etc components can resolve default props as well
*/
if (!isReactComponentClass(componentDefinition, importer)) {
statelessProps = getStatelessPropsPath(componentDefinition, importer);
}
// Do both statelessProps and defaultProps if both are available so defaultProps can override
if (statelessProps && t.ObjectPattern.check(statelessProps.node)) {
getDefaultValuesFromProps(
statelessProps.get('properties'),
documentation,
true,
importer,
);
}
if (defaultPropsPath && t.ObjectExpression.check(defaultPropsPath.node)) {
getDefaultValuesFromProps(
defaultPropsPath.get('properties'),
documentation,
false,
importer,
);
}
}