Releases: reactjs/react-docgen
[email protected]
Major Changes
-
96d6e9e: Rename
flowTypeHandler
tocodeTypeHandler
because it handles Flow and TypeScript -
96d6e9e: Simplify
resolveObjectValuesToArray
and remove type handling. None of the code that was handling types was actually used. -
caae6bf: The return values of
resolveObjectValuesToArray
are now in the order they are defined in the source code. -
96d6e9e: Migrate react-docgen to ES modules. Please read this
-
3b28f6e: The CLI was removed from
react-docgen
into its own package@react-docgen/cli
.Check out https://react-docgen.dev/docs/getting-started/cli for the documentation.
-
96d6e9e: The main
parse
API had some breaking changes.-
The arguments were changed from previously 5 to just 2. Checkout the diff to see how to migrate:
-parse(src, resolver, handlers, importer, options) +parse(src, { resolver, handlers, importer, filename, babelOptions: {} })
-
The return type is now always an array, independent of resolver and even if
only one component was found in the file.
-
-
96d6e9e: Renamed some of the main exports for clarity.
Renamed
handlers
tobuiltinHandlers
Renamedresolver
tobuiltinResolvers
Renamedimporters
tobuiltinImporters
-
96d6e9e: Migrated to babel toolchain
This is one of the big changes in this new version of react-docgen. It made the code a lot more robust
because there are now finally working TypeScript types for the ASTs.Another benefit from this change that react-docgen is now a lot faster. 🚀 In some
tests an improvement of nearly 50% was seen in comparison to version 5. -
d4c27d4: Improve performance of file system importer.
The file system importer now also caches resolving of files in addition to parsing files.
If the importer is used in an environment where files do change at runtime (like a watch
command) then the caches will need to be cleared on every file change. -
96d6e9e: Changed the minimum Node.js version to 14.17.0
Minor Changes
-
96d6e9e: Add support for
.cts
and.mts
extension when using typescript -
96d6e9e: Treat functions returning
React.Children.map
as components -
96d6e9e: Improve performance by creating all visitors only once
-
96d6e9e: Support all possible kinds of functions in the
displayNameHandler
-
96d6e9e: Support all literal types in typescript
-
96d6e9e: Support flow qualified type names
-
96d6e9e: Support class and function declarations without identifier
-
96d6e9e: Support resolving of destructurings in
resolveToValue
-
96d6e9e: Improve performance drastically by making changes to AST traversal
Visitors are now pre-exploded and are cached in the module scope instead of creating them on every call.
This change brought the benchmark from 170ops/s to 225ops/sec -
96d6e9e: Add codes to errors to be able to easily detect them
There is a new export
ERROR_CODES
that contains all possible error codes.
The two errors that have codes right now are:MISSING_DEFINITION
: No component found in fileMULTIPLE_DEFINITIONS
: Multiple components found in one files
-
96d6e9e: Support handling
useImperativeHandle
correctly
New Contributors
- @ggascoigne made their first contribution in #634
@react-docgen/[email protected]
Major Changes
-
3b28f6e: Introducing the new CLI package
@react-docgen/cli
which was extracted fromreact-docgen
and is a complete rewrite.
Compared to the old CLI these are some of the major differences:- Does not support input via stdin anymore
- The path argument is now a glob
-x, --extension
was removed in favor of globs-e, --exclude
was removed-i, --ignore
now accepts a glob--handler
added--importer
added--failOnWarning
added
Check out https://react-docgen.dev/docs/getting-started/cli for the documentation.
Patch Changes
- Updated dependencies [96d6e9e]
- Updated dependencies [96d6e9e]
- Updated dependencies [96d6e9e]
- Updated dependencies [96d6e9e]
- Updated dependencies [96d6e9e]
- Updated dependencies [96d6e9e]
- Updated dependencies [96d6e9e]
- Updated dependencies [caae6bf]
- Updated dependencies [96d6e9e]
- Updated dependencies [96d6e9e]
- Updated dependencies [96d6e9e]
- Updated dependencies [96d6e9e]
- Updated dependencies [96d6e9e]
- Updated dependencies [96d6e9e]
- Updated dependencies [96d6e9e]
- Updated dependencies [3b28f6e]
- Updated dependencies [96d6e9e]
- Updated dependencies [96d6e9e]
- Updated dependencies [96d6e9e]
- Updated dependencies [96d6e9e]
- Updated dependencies [96d6e9e]
- Updated dependencies [96d6e9e]
- Updated dependencies [96d6e9e]
- Updated dependencies [96d6e9e]
- Updated dependencies [96d6e9e]
- Updated dependencies [d4c27d4]
- Updated dependencies [96d6e9e]
v5.4.3
v6.0.0-alpha.3
6.0.0-alpha.3 (2022-06-13)
Bug Fixes
- Correctly detect index access types in typescript (#400) (85ea6a5)
- Correctly handle ObjectTypeSpreadProperty in object type annotations (#593) (395f338)
- Fix typescript types for parsing (34c55ac)
- Fix wrong detection of forwardRef in combination with memo (#592) (ea9cbeb)
- Handle ObjectTypeSpreadProperties which are not resolvable (4b8b721)
- Ignore methods in
Object.value()
calls (4fc5b21)
v5.4.2
5.4.1
6.0.0-alpha.2
This is a pre-release that is under heavy development. Please report any issues you might encounter here: #579
Bug Fixes
- Change folder name inside the npm package back to
dist
. (5f3da8c)
There was no real reason to change this and happened during the TypeScript migration.
v6.0.0-alpha.1
This is a pre-release that is under heavy development. Please report any issues you might encounter here: #576
Bug Fixes
- Fix for expressionTo with Spread and Methods (5f3da8c)
- Remove obsolete id check (66961d8)
- Remove usage of ast-type builders (17c8a9c)
Features
- Migrate to TypeScript (7b35e6f)
- Remove building out of scope AST Nodes from resolveToValue (5bcf56c)
BREAKING CHANGES
resolveToValue
will not create aMemberExpression
for targets ending in destructuring. It will now simply resolve to theIdentifier
inside the destructuring. Use new helperisDestructuringAssignment
to further check this identifier.- The helpers
resolveObjectValuesToArray
andresolveObjectKeysToArray
return nowstring[]
instead of aNodePath
6.0.0-alpha.0
Install with
yarn add react-docgen@next
Includes all commits that are also in 5.4.0.
- Allow resolving of imported types/proptypes
This version does not yet really have any breaking changes, so for updating from 5.4.0 or 5.4.0-alpha.0 nothing needs to be done. The import-resolving feature is such a big change that it will be released in the next major version, so this is the only change for now in this alpha version. Also to come in 6.0 is a complete rewrite in TypeScript, the removal of the
ast-types
dependency and some more major changes. See #502.
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.0
version which includes resolving of imports.
Bug Fixes
- Ensure
componentMethodsHandler
ignores private properties (#440)
Features
- use
@babel/generate
to serialise AST nodes w/o loc inprintValue
(#482)