From 57075351529008f219bf80507fc11d4417ca397a Mon Sep 17 00:00:00 2001 From: Cassio Terceiro Date: Fri, 6 Mar 2020 14:17:26 -0300 Subject: [PATCH] Add a fallback for components with multiple export --- src/react-docgen-md.js | 27 +++++++++++++++++++-------- 1 file changed, 19 insertions(+), 8 deletions(-) diff --git a/src/react-docgen-md.js b/src/react-docgen-md.js index e1204b3..6ecc100 100644 --- a/src/react-docgen-md.js +++ b/src/react-docgen-md.js @@ -109,14 +109,25 @@ var reactDocgenTemplate = Handlebars.compile('\ * Documentation generator using react-docgen * ********************************************************/ -var reactDocgenMarkdown = function(componentSrc, options) { - var docs = reactDocs.parse(componentSrc); - return reactDocgenTemplate({ - srcLink : options.srcLink, - componentName : options.componentName, - description : docs.description, - props : sortObjectByKey(docs.props) - }); +var reactDocgenMarkdown = function (componentSrc, options) { + try { + const docs = reactDocs.parse(componentSrc); + return reactDocgenTemplate({ + srcLink: options.srcLink, + componentName: options.componentName, + description: docs.description, + props: sortObjectByKey(docs.props) + }); + } catch (error) { + // Fallback for components using multiple exports in the same file + const docsList = reactDocs.parse(componentSrc, reactDocs.resolver.findAllExportedComponentDefinitions); + return docsList.reduce((acc, docs) => acc + reactDocgenTemplate({ + srcLink: options.srcLink, + componentName: options.componentName, + description: docs.description, + props: sortObjectByKey(docs.props) + }) + '\n', ''); + } }; module.exports = reactDocgenMarkdown;