Skip to content

v5.0.0-beta.1

Pre-release
Pre-release
Compare
Choose a tag to compare
@danez danez released this 04 May 04:30

The first prerelease of yet another breaking version, but it comes with a lot of nice goodies and three massive changes.

  • We finally have TypeScript support thanks to the hard work of @devongovett 🎉. If you are using React in combination with TypeScript we ask you to try this prerelease and report back if everything works as expected.
  • react-docgen v5 is now licensed under the MIT license 👏. Thanks to @fkling for talking to the right people at Facebook to make this happen.
  • We improved the performance by removing the recast dependency and using babel directly for parsing the code. In our measurements we saw a 20% to 25% performance increase. If you are testing this new prerelease let us now if you see any improvement in your project.

And there are more helpful changes to come till the final. Stay tuned.

This release includes all changes up to v4.1.1.

BREAKING CHANGES

  • The license changed to MIT. When updating ensure that MIT is one of the licenses allowed in your project.
  • The signature of resolvers has changed. It previously received the Program AST node as first param and recast as second param. The new signature receives the File AST node as first argument and the preconfigured parser as second argument.
    resolver(ast: ASTNode, parser: { parse: (string) => AST })

New Features

  • Handle computed properties correctly and do not fail generation (#340)
    If you are using computed properties in your react props we will now include them in the output if we can. If the expression in the computed property is a literal (string, number) we will directly use this as the name otherwise if it is an identifier we will use this an prefix it with @computed#.
  • Fully support React.forwardRef (#350)
  • Add support for TypeScript (#348)
    We will now correctly parse TypeScript if the filename supplied to react-docgen has a TypeScript extension (.ts, .tsx). If you have babel already setup for TypeScript in your project then all you need to do is supply the filename via the parse options. In the output there will be a new property called tsType which will include the documentation extracted from TypeScript.
  • Add support for Flow interfaces and Flow generic types (#348)
  • The default parse function can now receive a string or a Buffer.
  • Handlers now receive the preconfigured parser as 3rd argument.
    handler(documentation: Documentation, path: NodePath, parser: { parse: (string) => AST })

Performance

  • Remove recast and use ast-types directly (#349)

Bug Fixes

  • Add missing isReactForwardRefCall export (#351)