-
Notifications
You must be signed in to change notification settings - Fork 25k
Generator Components handing for Unions #54602
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
arushikesarwani94
wants to merge
17
commits into
facebook:main
Choose a base branch
from
arushikesarwani94:export-D87410890
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Generator Components handing for Unions #54602
arushikesarwani94
wants to merge
17
commits into
facebook:main
from
arushikesarwani94:export-D87410890
+541
−275
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Summary: Pull Request resolved: facebook#54586 Adding NumberTypeAnnotation to the Codegen Schema in order to obtain parity with String & Boolean which will be the Union types Changelog: [Internal] Differential Revision: D87374063
Summary: Pull Request resolved: facebook#54587 Adding the generic type T UnionTypeAnnotation. This will be used later to create Unions of types String, Number & Boolean. Changelog: [Internal] Differential Revision: D87374445
Summary: Pull Request resolved: facebook#54588 Introduce NumberLiteralType & StringLiteralType in TypeScript just as they already exist in Flow here: https://www.internalfb.com/code/fbsource/[9b248afa0cd5548b81dd44f1042b230e6069432b]/xplat/js/react-native-github/packages/react-native-codegen/src/CodegenSchema.js?lines=41-53 Changelog: [Internal] Differential Revision: D87375511
Summary: TupleTypeAnnotation is added for parity with UnionTypeAnnotation to support future implementation. Currently limited to String and Number literals as per: https://docs.google.com/document/d/1pTBMOEIov5n5-0L9z925XPvGX1YxlmI6n6FJvd0oXtE/edit?tab=t.0#heading=h.fhe5py9plytd Differential Revision: D87383455
Summary: Pull Request resolved: facebook#54590 Introduce `BooleanLiteralTypeAnnotation` in Flow & TypeScript to match the existing `StringLiteralTypeAnnotation` & `NumberLiteralTypeAnnotation` since Unions will be supporting Booleans along with String & Number Changelog: [Internal] Differential Revision: D87384473
Summary: Pull Request resolved: facebook#54591 Following types will be supported in Union currently: 1. Number : NumberType + NumberLiteralType 2. Boolean : BooleanType + BooleanLiteralType 3. String : StringType + StringLiteralType 4. Object: NativeModuleObjectType These are the only ones that exist today as per : https://docs.google.com/document/d/1pTBMOEIov5n5-0L9z925XPvGX1YxlmI6n6FJvd0oXtE/edit?tab=t.0#heading=h.fhe5py9plytd Changelog: [Internal] Differential Revision: D87384995
Summary: Pull Request resolved: facebook#54592 Adding `NumberLiteralUnionTypeAnnotation` & `BooleanLiteralUnionTypeAnnotation` to Flow & TypeScript so that they are in parity with other Union type : `StringLiteralUnionTypeAnnotation`. Number & Boolean aren't used anywhere yet. Changelog: [Internal] Differential Revision: D87386144
…n in Flow (facebook#54593) Summary: Pull Request resolved: facebook#54593 Just as `NumberLiteralTypeAnnotation` was part of the `NativeModuleBaseTypeAnnotation` in Flow, adding the `BooleanLiteralTypeAnnotation` NOTE: Didn't add this change for TS as both `NumberLiteralTypeAnnotation` was not included as part of `NativeModuleBaseTypeAnnotation` in TS, also the generators were not failing in TS for this. Changelog: [Internal] Differential Revision: D87392274
Summary: Refactoring `NativeModuleUnionTypeAnnotation` to use the newly introduced `NativeModuleUnionTypeAnnotationMemberType` Changelog: [Internal] Differential Revision: D87386775
Summary: Now that UnionTypeAnnotation itself supports both the member types and value, we can fold the StringLiteralUnionTypeAnnotation into the UnionTypeAnnotation and un-special case the StringLiteralUnionTypeAnnotation Changelog: [Internal] Differential Revision: D87388948
…move the special handling of StringLiteralUnionType Summary: - Getting rid of emitStringLiteralUnion logic in parser - Modifying the emitUnion logic in parser Changelog: [Internal] Differential Revision: D87412493
Summary: Flow Parser changes to accomodate the new emitUnion Changelog: [Internal] Differential Revision: D87412532
Summary: TypeScript Parser changes to accomodate new emitUnion Changelog: [Internal] Differential Revision: D87412635
Summary: Now that different member types in Union is no more a parser error getting rid of `UnsupportedUnionTypeAnnotationParserError` Changelog: [Internal] Differential Revision: D87412703
Summary: Added logic for handling Unions that will be used by all generators. NOTE: Generators behavior still remain unchanged hence don't allow unions of different types. Only RN Compat Checker consumes this new change of Union support of different types Changelog: [Internal] Differential Revision: D87391424
Summary: - Adding handling in generators/modules for handling Unions using the newly defined Utils function (parseValidUnionType) - Adding handling for generators/modules for BooleanLiteralTypeAnnotation (same as BooleanTypeAnnotation) just as is done for NumberLiteralTypeAnnotation NOTE:Generators behavior still remain unchanged hence don't allow unions of different types. Only RN Compat Checker consumes this new change of Union support of different types Changelog: [Internal] Differential Revision: D87410022
Summary: Modifying the generators/components to handle Unions. Did not use the Utils function parseValidUnionType in CppHelpers.js since it needs to handle StringLiteralTypeAnnotation & StringTypeAnnotation differently as was done before. NOTE:Generators behavior still remain unchanged hence don't allow unions of different types. Only RN Compat Checker consumes this new change of Union support of different types Differential Revision: D87410890
|
@arushikesarwani94 has exported this pull request. If you are a Meta employee, you can view the originating Diff in D87410890. |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Labels
CLA Signed
This label is managed by the Facebook bot. Authors need to sign the CLA before a PR can be reviewed.
fb-exported
meta-exported
p: Facebook
Partner: Facebook
Partner
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Summary:
Modifying the generators/components to handle Unions.
Did not use the Utils function parseValidUnionType in CppHelpers.js since it needs to handle StringLiteralTypeAnnotation & StringTypeAnnotation differently as was done before.
NOTE:Generators behavior still remain unchanged hence don't allow unions of different types. Only RN Compat Checker consumes this new change of Union support of different types
Differential Revision: D87410890