Releases: reactjs/react-docgen
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>, };
v3.0.0-beta8
(cherry picked changes released in v2.19.0
)
New
See v2.19.0
.
Fixed
-
See
v2.19.0
. -
Flow: Function type definitions without parameter names are now supported. For example:
type Props = { callback: (string) => void, }
In such a case the parameter name will simply be empty. See the commit ( #218 ) for an example of the output. Thank you @odinuge!
Other
- See
v2.19.0
. getMemberValuePath
now understandsTaggedTemplateExpression
s. This is used by @Jmeyering's custom annotation resolver. Check it out at https://github.com/Jmeyering/react-docgen-annotation-resolver ! Thank you @Jmeyering!
You can install this version via npm install react-docgen@next
.
v2.19.0
New
-
The names of class declarations and function declarations are now used as
displayName
s (3f22b3c). -
In classes,
static get propTypes(){}
is now inspected for propTypes. I.e. instead ofclass MyComponent extends React.Component {} MyComponent.propTypes = { disabled: PropTypes.boolean, };
you can now write
class MyComponent extends React.Component { static get propTypes() { return { disabled: PropTypes.boolean, }; } }
(23aa0fe)
Other
resolveToModule
also resolvesJSXIdentifiers
now (2c6e55a)