Skip to content

Releases: reactjs/react-docgen

react-docgen@6.0.0-rc.8

30 Apr 13:23
0a3fdb0
Compare
Choose a tag to compare
Pre-release

Patch Changes

  • #787
    5a226ac
    Thanks @danez! - Fix @babel/traverse import to
    work in non ESM environments

react-docgen@6.0.0-rc.7

30 Apr 09:36
c5f032a
Compare
Choose a tag to compare
Pre-release

Major Changes

  • #786
    0a2481d
    Thanks @danez! - Renamed the method toObject to
    build in the DocumentationBuilder.

    This method might be used by integrations.

Minor Changes

  • #786
    0a2481d
    Thanks @danez! - Export the type for the
    DocumentationBuilder.

  • #786
    0a2481d
    Thanks @danez! - The types NodePath and
    babelTypes are now exported.

    These types are useful when building integrations in TypeScript.

    babelTypes includes all types from @babel/types.

Patch Changes

  • #767
    a684d82
    Thanks @danez! - Fix handling of PropTypes.oneOf
    to handle unresolved imported values correctly

  • #769
    e08e08d
    Thanks @danez! - Correctly resolve the values in
    an Object.values() call

@react-docgen/cli@1.0.0-rc.5

30 Apr 13:23
0a3fdb0
Compare
Choose a tag to compare
Pre-release

Patch Changes

  • Updated dependencies
    [5a226ac]:
    • react-docgen@6.0.0-rc.8

@react-docgen/cli@1.0.0-rc.4

30 Apr 09:36
c5f032a
Compare
Choose a tag to compare
Pre-release

Patch Changes

react-docgen@6.0.0-beta.6

25 Mar 23:36
Compare
Choose a tag to compare
Pre-release

Major Changes

  • dfc2f85: Rename propDocBlockHandler to propDocblockHandler for consistency

Patch Changes

  • cc94da2: Fix using react-docgen in browsers
  • 98a1138: Add displayName and description to Documentation type

@react-docgen/cli@1.0.0-beta.3

25 Mar 23:36
Compare
Choose a tag to compare
Pre-release

Minor Changes

  • 217a005: Add support for the FindAnnotatedDefinitionsResolver.

    Can be used with

    react-docgen --resolver find-all-annotated-components
    

Patch Changes

  • Updated dependencies [dfc2f85]
  • Updated dependencies [cc94da2]
  • Updated dependencies [98a1138]
    • react-docgen@6.0.0-beta.6

react-docgen@6.0.0-beta.5

31 Jan 23:36
react-docgen@6.0.0-beta.5
Compare
Choose a tag to compare
Pre-release

Major Changes

  • d7a39af: Refactored resolveComponentDefinition utility.

    • Renamed to findComponentDefinition
    • Removed named export isComponentDefinition
    • The utility now does a lot more than previously, check out the commit to see
      the changes in detail.
  • e956802: Remove match utility.

    The utility can be replaced by babel helpers and is not needed anymore. Also
    using explicit checks like path.isMemberExpression() is better for type
    safety and catching potential bugs.

  • 5215bab: Removed support for the @extends React.Component annotation on
    react class components.

    Instead you can use the new @component annotation.

  • 80e4c74: Renamed and migrated built-in resolvers to classes.

    • findAllComponentDefinitions was renamed to FindAllDefinitionsResolver
      and is now a class.

      -const resolver = builtinResolvers.findAllComponentDefinitions
      +const resolver = new builtinResolvers.FindAllDefinitionsResolver()
    • findAllExportedComponentDefinitions was renamed to
      FindExportedDefinitionsResolver and is now a class.

      -const resolver = builtinResolvers.findAllExportedComponentDefinitions
      +const resolver = new builtinResolvers.FindExportedDefinitionsResolver()
    • findExportedComponentDefinition was removed. Use
      FindExportedDefinitionsResolver with the limit option instead.

      This is still the default resolver.

      -const resolver = builtinResolvers.findExportedComponentDefinition
      +const resolver = new builtinResolvers.FindExportedDefinitionsResolver({ limit: 1 })

Minor Changes

  • 80e4c74: Add the new ChainResolver which allows multiple resolvers to be
    chained.

    import { builtinResolvers } from 'react-docgen';
    
    const { ChainResolver } = builtinResolvers;
    const resolver = new ChainResolver([resolver1, resolver2], {
      chainingLogic: ChainResolver.Logic.ALL, // or ChainResolver.Logic.FIRST_FOUND,
    });
  • 80e4c74: Allow resolvers to be classes in addition to functions.

    import type { ResolverClass, ResolverFunction } from 'react-docgen';
    
    // This was the only option until now
    const functionResolver: ResolverFunction = (file: FileState) => {
      //needs to return array of found components
    };
    
    // This is the new class resolver
    class MyResolver implements ResolverClass {
      resolve(file: FileState) {
        //needs to return array of found components
      }
    }
    
    const classResolver = new MyResolver();
  • 5215bab: Added a new resolver that finds annotated components. This resolver
    is also enabled by default.

    To use this feature simply annotated a component with @component.

    // @component
    class MyComponent {}

Patch Changes

  • 8fe3dbf: Fix crash when using TypeScript mapped types
  • ea25b16: Handle cyclic references in PropTypes shape() and exact()
    methods.
  • 1aa0249: Handle typeof import('...') and typeof MyType.property correctly
    in TypeScript
  • 050313d: Correctly add LICENSE file to published packages
  • f6e4fe7: Update dependency strip-indent to v4

@react-docgen/cli@1.0.0-beta.2

31 Jan 23:34
@react-docgen/cli@1.0.0-beta.2
Compare
Choose a tag to compare
Pre-release

Major Changes

  • 80e4c74: Renamed --handlers option to --handler. This unifies all options
    to be singular.

Minor Changes

  • 80e4c74: --resolver option can now be used multiple times.

    If used multiple times the resolvers will be chained in the defined order and
    all components from all resolvers will be used.

Patch Changes

  • ebd9130: Display the correct help info when running react-docgen --help
  • 050313d: Correctly add LICENSE file to published packages
  • 5b281f4: update dependency commander to v10
  • Updated dependencies [8fe3dbf]
  • Updated dependencies [d7a39af]
  • Updated dependencies [80e4c74]
  • Updated dependencies [e956802]
  • Updated dependencies [80e4c74]
  • Updated dependencies [ea25b16]
  • Updated dependencies [1aa0249]
  • Updated dependencies [050313d]
  • Updated dependencies [5215bab]
  • Updated dependencies [f6e4fe7]
  • Updated dependencies [5215bab]
  • Updated dependencies [80e4c74]
    • react-docgen@6.0.0-beta.5

react-docgen@6.0.0-alpha.4

15 Dec 22:55
23c2977
Compare
Choose a tag to compare
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/cli@1.0.0-alpha.1

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