Releases: reactjs/react-docgen
Releases · reactjs/react-docgen
3.0.0
Changes from rc.2
- Add
forwardRef
as a valid component definition (#311) - Resolve flow
$Keys
to union when typeParameter is anObjectTypeAnnotation
(#290) - Attempt to support system-components (#292)
- Add support for
PropTypes.exact
- resolve
Object.values()
inPropType.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
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
3.0.0-rc.0
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 toReactDocgen.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 fromReact.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
2.21.0
v3.0.0-beta12
New
Support for "unwrapping" $Exact<...>
and $ReadOnly<...>
type annotations. Example:
type Props = $ReadOnly<{
foo: string,
}>;
v3.0.0-beta11
v2.20.1
v3.0.0-beta9
(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
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>, };