react-docgen
react-docgen copied to clipboard
original parserOptions not getting passed to traversed files. Intentional?
I'm using react-docgen@next on a project that uses Flow, and I'm utilizing the new makeFsImporter
importer to be able to parse imported types. Here's my setup:
value = docgen.parse(source, null, null, {
importer: docgen.importers.makeFsImporter(),
filename: path,
parserOptions: {
plugins: [
'jsx',
'flow',
'nullishCoalescingOperator',
'objectRestSpread',
'optionalCatchBinding',
'optionalChaining',
'classProperties',
'classPrivateProperties',
'classPrivateMethods',
],
},
});
I am passing parserOptions
because the .babelrc that react-docgen finds is not the one I want it to use (it doesn't contain the flow
plugin). I noticed that the parserOptions
get applied correctly to the original file, but for other files that are traversed, parserOptions are ignored:
https://github.com/reactjs/react-docgen/blob/master/src/importer/makeFsImporter.js#L70
This causes a SyntaxError when traversed files with imported types are parsed because it reverts to the .babelrc that I was avoiding by specifying parserOptions.plugins
.
Is the line in makeFsImporter that sets parserOptions: {}
intentional? Or can it be removed so that parserOptions specified in the original parse call are applied to other files? I'm happy to open a PR if so.
EDIT: I found a similar question asked when this code was introduced: https://github.com/reactjs/react-docgen/pull/352/files/8c0a15fcae4053b1d2115bd7dbd24252cf70b228#r287538448.