Skip to content

Releases: reactjs/react-docgen

3.0.0

28 Jan 20:54
Compare
Choose a tag to compare

Changes from rc.2

  • Add forwardRef as a valid component definition (#311)
  • Resolve flow $Keys to union when typeParameter is an ObjectTypeAnnotation (#290)
  • Attempt to support system-components (#292)
  • Add support for PropTypes.exact
  • resolve Object.values() in PropType.oneOf() (#318)

Big Changes from 2.x

  • Drop support for node 4. Only node 6 and newer are supported
  • Switched the internal parser from babylon@5 to @babel/parser@7. This should not break anything, but will support a lot more newer javascript syntax features as well as newer flow syntaxes.
  • react-docgen now parses only the new decorators proposal syntax and not the old one anymore by default. You can switch back to the legacy decorators proposal with the cli flag --legacy-decorators or the programmatic options { legacyDecorators: true } passed as 4th parameter to ReactDocgen.parse().
  • The types of method params and return (parsed from JSdoc) are now the same as the flow types.

3.0.0-rc.2

03 Nov 00:48
Compare
Choose a tag to compare
3.0.0-rc.2 Pre-release
Pre-release

New Features

  • Support flow NullLiteralTypeAnnotation node type (#299)
  • Support JSXFragment (#304)
  • Add option to switch between the two decorator modes for babel
  • Allow descriptions for oneOfType values (#301)

Performance

  • Ensure visited types memory is empty after flow type detection is done

Bug Fixes

  • Ignore assignment to non-identifier/literals (#305)
  • Ensure null is never put into visited types memory

Internal

  • Update to babel 7
  • Update to latest recast version

3.0.0-rc.1

03 Nov 00:44
Compare
Choose a tag to compare
3.0.0-rc.1 Pre-release
Pre-release

Breaking Change

  • The types of method params and return are now the same as the flow types.

New Features

  • Add modifier for getters and setters (#287)

Bug Fixes

  • Output qualified type identifiers correctly
  • Correctly and recursively parse jsdoc types (#286)

3.0.0-rc.0

14 Jul 18:19
Compare
Choose a tag to compare
3.0.0-rc.0 Pre-release
Pre-release

Breaking Change

  • react-docgen now parses only the new decorators proposal syntax and not the old one anymore by default. You can switch back to the legacy decorators proposal with the cli flag --legacy-decorators or the programmatic options { legacyDecorators: true } passed as 4th parameter to ReactDocgen.parse().
  • Drop support for node <6

New Features

  • Parse information about the (old) react context API (#130, #260)
  • Adding @extends React.Component support to mark classes which do not extend from React.Component as valid react components (#269)
  • Support type cast expression when detecting components (#279)

Bug Fixes

  • Fix typo in one error message (Propery -> Property) (#257)
  • Fix handling of exported classes without id (#273)
  • Remove renamed SpreadProperty checks
  • Extract display name correctly even if components are wrapped (#277)
  • Resolve value to a proper node instead of an array, which fixes some recast exceptions (#278)
  • Correctly unwrap utility types when resolving type spreads (#280)
  • Correctly read descriptions of inner types in arrayOf/objectOf (#281)
  • Correctly read descriptions of local spread objects (#282)

Internal

  • Migrate babylon to @babel/parser (#272)
  • Use prettier (#274)

2.21.0

26 Jun 14:28
Compare
Choose a tag to compare

New Features

  • Also output information about (old) react context usages (#260, #130)
  • Adding @extends React.Component support to isReactComponentClass (#269)

BugFixes

  • Fix handling of exported classes without id (#273)
  • typo: Propery -> Property (#257)

v3.0.0-beta12

12 Apr 04:47
Compare
Choose a tag to compare
v3.0.0-beta12 Pre-release
Pre-release

New

Support for "unwrapping" $Exact<...> and $ReadOnly<...> type annotations. Example:

type Props = $ReadOnly<{
  foo: string,
}>;

v3.0.0-beta11

17 Feb 23:12
Compare
Choose a tag to compare
v3.0.0-beta11 Pre-release
Pre-release

BugFixes

  • Handle Logical and Conditional Expressions (#245)
  • Added post-processing step for documentation (#227)
  • Handle array shorthand notation (#251)
  • Fix cycles in flow type detection (#252)
  • Get displayName from variable if nothing else found

v2.20.1

17 Feb 23:12
Compare
Choose a tag to compare

BugFixes

  • Handle Logical and Conditional Expressions (#245)
  • Added post-processing step for documentation (#227)
  • Handle array shorthand notation (#251)
  • Fix cycles in flow type detection (#252)
  • Get displayName from variable if nothing else found

v3.0.0-beta9

09 Nov 21:55
Compare
Choose a tag to compare
v3.0.0-beta9 Pre-release
Pre-release

(merged changes released in v2.20.0)

New

See v2.20.0.

  • Update babylon to latest beta. This allows a lot new syntax proposal which were added to babylon (see babylon changes)

  • Enable more babylon plugins (#220)

    Enables the following new plugins in babylon:

    • classPrivateProperties
    • classPrivateMethods
    • numericSeparator
    • optionalChaining
    • importMeta
    • bigInt
    • optionalCatchBinding
    • throwExpressions
    • pipelineOperator
    • nullishCoalescingOperator

You can install this version via npm install react-docgen@next.

v2.20.0

09 Nov 21:49
Compare
Choose a tag to compare

New

  • Add support for typeof types and React.* types (#224)

    Adds support for all the types described in the react flow docs

  • Resolve flow $Keys<> to union type (#225)

    const CONTENTS = {
      'apple': '🍎',
      'banana': '🍌',
    };
    type Props = {
      fruit: $Keys<typeof CONTENTS>,
    };