Releases: reactjs/react-docgen
Releases · reactjs/react-docgen
5.4.0
This does not include #464. Resolving of imports will be added in 6.0. There is a new
6.0.0-alpha.0version which includes resolving of imports.
Bug Fixes
- Ensure
componentMethodsHandlerignores private properties (#440)
Features
- use
@babel/generateto serialise AST nodes w/o loc inprintValue(#482)
5.4.0-alpha.0
- Allow resolving of imported types/proptypes
5.3.1
5.3.0
5.2.1
5.2.0
5.1.0
5.0.0
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
ProgramAST node as first param andrecastas second param. The new signature receives theFileAST node as first argument and the preconfigured parser as second argument.
resolver(ast: ASTNode, parser: { parse: (string) => AST }) - Node 8.10.0 or newer is required, older versions are not supported anymore
- When we detect HOC react-docgen now assumes that the first argument to the HOC is the component. Previously we assumed the last argument is the component, but nearly all implementations of HOC which have multiple arguments have the component as the first argument.
- React class components now require to extend another class in order to be detected as component. Previously any class having a render method was considered a react component.
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 havebabelalready 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 calledtsTypewhich will include the documentation extracted from TypeScript. - Add support for TSMappedType (#362)
- Add support for Flow interfaces and Flow generic types (#348)
- The default
parsefunction can now receive astringor aBuffer. - Handlers now receive the preconfigured parser as 3rd argument.
handler(documentation: Documentation, path: NodePath, parser: { parse: (string) => AST }) - Support destructuring and aliased imports in react builtin call detection (#385)
- Be more strict about detecting react class components (#397)
Performance
- Remove recast and use ast-types directly (#349)
Bug Fixes
- Add missing isReactForwardRefCall export (#351)
- HOCs resolving intermediate values (#378)
- Expand index types correctly (#369)
- Type inference on forwardRef components (#392)
- Support ts(x) file parsing using CLI (#391)
- Assume HOC first param is Component not last (#343)
- Detect components wrapped in HOC with all resolver (#344)
- Bail when function returns are recursive instead of stack overflowing (#407)
- Support type as expressions and type assertions (#408)
v5.0.0-beta.1
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
recastdependency and usingbabeldirectly 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
ProgramAST node as first param andrecastas second param. The new signature receives theFileAST 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 havebabelalready 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 calledtsTypewhich will include the documentation extracted from TypeScript. - Add support for Flow interfaces and Flow generic types (#348)
- The default
parsefunction can now receive astringor aBuffer. - 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)