Skip to content

Releases: reactjs/react-docgen

[email protected]

15 Dec 22:55
23c2977
Compare
Choose a tag to compare
[email protected] Pre-release
Pre-release

Major Changes

  • 96d6e9e: Rename flowTypeHandler to codeTypeHandler 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 to builtinHandlers
    Renamed resolver to builtinResolvers
    Renamed importers to builtinImporters

  • 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 file
    • MULTIPLE_DEFINITIONS: Multiple components found in one files
  • 96d6e9e: Support handling useImperativeHandle correctly

New Contributors

@react-docgen/[email protected]

15 Dec 22:55
23c2977
Compare
Choose a tag to compare
Pre-release

Major Changes

  • 3b28f6e: Introducing the new CLI package @react-docgen/cli which was extracted from react-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

v5.4.3

02 Jul 17:48
Compare
Choose a tag to compare

5.4.3 (2022-07-02)

Bug Fixes

  • Add support for TSAsExpressions when trying to stringify expressions (#634) (8b34e26)
  • Fix for expressionTo with Spread and Methods (0c3c38f)

v6.0.0-alpha.3

13 Jun 19:25
Compare
Choose a tag to compare
v6.0.0-alpha.3 Pre-release
Pre-release

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

13 Jun 19:49
Compare
Choose a tag to compare

5.4.2 (2022-06-13)

Bug Fixes

  • Fix wrong detection of forwardRef in combination with memo (#592) (522e8f5)

5.4.1

28 May 22:13
Compare
Choose a tag to compare

Bug Fixes

  • Correctly detect index access types in typescript (#400)
  • Ignore methods in Object.value() calls (#581)
  • Correctly handle ObjectTypeSpreadProperty in object type annotations (#593)

6.0.0-alpha.2

04 Apr 16:46
Compare
Choose a tag to compare
6.0.0-alpha.2 Pre-release
Pre-release

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

04 Apr 12:05
Compare
Choose a tag to compare
v6.0.0-alpha.1 Pre-release
Pre-release

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 a MemberExpression for targets ending in destructuring. It will now simply resolve to the Identifier inside the destructuring. Use new helper isDestructuringAssignment to further check this identifier.
  • The helpers resolveObjectValuesToArray and resolveObjectKeysToArray return now string[] instead of a NodePath

6.0.0-alpha.0

08 May 16:24
Compare
Choose a tag to compare
6.0.0-alpha.0 Pre-release
Pre-release

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

08 May 16:20
Compare
Choose a tag to compare

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 in printValue (#482)