@react-native/codegen 0.74.0 → 0.75.0-nightly-20240221-a1171f79f

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (147) hide show
  1. package/lib/CodegenSchema.d.ts +10 -1
  2. package/lib/CodegenSchema.js.flow +2 -1
  3. package/lib/SchemaValidator.js.flow +2 -2
  4. package/lib/cli/combine/combine-js-to-schema-cli.js +59 -40
  5. package/lib/cli/combine/combine-js-to-schema-cli.js.flow +23 -39
  6. package/lib/cli/combine/combine-js-to-schema.js +49 -1
  7. package/lib/cli/combine/combine-js-to-schema.js.flow +59 -1
  8. package/lib/cli/combine/combine-schemas-cli.js +77 -0
  9. package/lib/cli/combine/combine-schemas-cli.js.flow +87 -0
  10. package/lib/cli/combine/combine-utils.js +3 -65
  11. package/lib/cli/combine/combine-utils.js.flow +7 -28
  12. package/lib/cli/parser/parser.js +1 -1
  13. package/lib/cli/parser/parser.js.flow +1 -1
  14. package/lib/generators/RNCodegen.d.ts +1 -0
  15. package/lib/generators/RNCodegen.js +58 -31
  16. package/lib/generators/RNCodegen.js.flow +52 -32
  17. package/lib/generators/TypeUtils/Cxx/index.js +17 -0
  18. package/lib/generators/TypeUtils/Cxx/index.js.flow +18 -0
  19. package/lib/generators/TypeUtils/Java/index.js +31 -0
  20. package/lib/generators/TypeUtils/Java/index.js.flow +27 -0
  21. package/lib/generators/TypeUtils/Objective-C/index.js +17 -0
  22. package/lib/generators/TypeUtils/Objective-C/index.js.flow +18 -0
  23. package/lib/generators/components/ComponentsGeneratorUtils.js +7 -7
  24. package/lib/generators/components/ComponentsGeneratorUtils.js.flow +8 -10
  25. package/lib/generators/components/ComponentsProviderUtils.js +55 -0
  26. package/lib/generators/components/ComponentsProviderUtils.js.flow +60 -0
  27. package/lib/generators/components/CppHelpers.js +7 -0
  28. package/lib/generators/components/CppHelpers.js.flow +14 -0
  29. package/lib/generators/components/GenerateComponentDescriptorCpp.js +89 -0
  30. package/lib/generators/components/GenerateComponentDescriptorCpp.js.flow +101 -0
  31. package/lib/generators/components/GenerateComponentDescriptorH.js +28 -12
  32. package/lib/generators/components/GenerateComponentDescriptorH.js.flow +20 -12
  33. package/lib/generators/components/GenerateComponentHObjCpp.js +15 -1
  34. package/lib/generators/components/GenerateComponentHObjCpp.js.flow +11 -2
  35. package/lib/generators/components/GenerateEventEmitterCpp.js +28 -15
  36. package/lib/generators/components/GenerateEventEmitterCpp.js.flow +16 -17
  37. package/lib/generators/components/GenerateEventEmitterH.js +20 -13
  38. package/lib/generators/components/GenerateEventEmitterH.js.flow +13 -15
  39. package/lib/generators/components/GeneratePropsCpp.js +17 -8
  40. package/lib/generators/components/GeneratePropsCpp.js.flow +13 -9
  41. package/lib/generators/components/GeneratePropsH.js +23 -16
  42. package/lib/generators/components/GeneratePropsH.js.flow +12 -16
  43. package/lib/generators/components/GeneratePropsJavaDelegate.js +11 -3
  44. package/lib/generators/components/GeneratePropsJavaDelegate.js.flow +7 -4
  45. package/lib/generators/components/GeneratePropsJavaInterface.js +11 -3
  46. package/lib/generators/components/GeneratePropsJavaInterface.js.flow +6 -3
  47. package/lib/generators/components/GeneratePropsJavaPojo/PojoCollector.js.flow +6 -6
  48. package/lib/generators/components/GeneratePropsJavaPojo/index.js +1 -1
  49. package/lib/generators/components/GeneratePropsJavaPojo/index.js.flow +1 -1
  50. package/lib/generators/components/GeneratePropsJavaPojo/serializePojo.js.flow +1 -0
  51. package/lib/generators/components/GenerateShadowNodeCpp.js +19 -8
  52. package/lib/generators/components/GenerateShadowNodeCpp.js.flow +9 -8
  53. package/lib/generators/components/GenerateShadowNodeH.js +27 -11
  54. package/lib/generators/components/GenerateShadowNodeH.js.flow +11 -14
  55. package/lib/generators/components/GenerateStateCpp.js +19 -8
  56. package/lib/generators/components/GenerateStateCpp.js.flow +9 -8
  57. package/lib/generators/components/GenerateStateH.js +9 -5
  58. package/lib/generators/components/GenerateStateH.js.flow +3 -4
  59. package/lib/generators/components/GenerateTests.js +11 -5
  60. package/lib/generators/components/GenerateTests.js.flow +2 -2
  61. package/lib/generators/components/GenerateThirdPartyFabricComponentsProviderH.js +16 -3
  62. package/lib/generators/components/GenerateThirdPartyFabricComponentsProviderH.js.flow +18 -3
  63. package/lib/generators/components/GenerateThirdPartyFabricComponentsProviderObjCpp.js +18 -3
  64. package/lib/generators/components/GenerateThirdPartyFabricComponentsProviderObjCpp.js.flow +21 -3
  65. package/lib/generators/components/GenerateViewConfigJs.js +2 -2
  66. package/lib/generators/components/GenerateViewConfigJs.js.flow +2 -2
  67. package/lib/generators/components/JavaHelpers.js +8 -0
  68. package/lib/generators/components/JavaHelpers.js.flow +9 -0
  69. package/lib/generators/components/__test_fixtures__/fixtures.js +22 -0
  70. package/lib/generators/components/__test_fixtures__/fixtures.js.flow +22 -0
  71. package/lib/generators/modules/GenerateModuleCpp.js +14 -10
  72. package/lib/generators/modules/GenerateModuleCpp.js.flow +9 -10
  73. package/lib/generators/modules/GenerateModuleH.js +198 -72
  74. package/lib/generators/modules/GenerateModuleH.js.flow +186 -71
  75. package/lib/generators/modules/GenerateModuleJavaSpec.js +50 -57
  76. package/lib/generators/modules/GenerateModuleJavaSpec.js.flow +45 -50
  77. package/lib/generators/modules/GenerateModuleJniCpp.js +16 -12
  78. package/lib/generators/modules/GenerateModuleJniCpp.js.flow +11 -12
  79. package/lib/generators/modules/GenerateModuleJniH.js +12 -5
  80. package/lib/generators/modules/GenerateModuleJniH.js.flow +8 -6
  81. package/lib/generators/modules/GenerateModuleObjCpp/StructCollector.js +5 -5
  82. package/lib/generators/modules/GenerateModuleObjCpp/StructCollector.js.flow +11 -12
  83. package/lib/generators/modules/GenerateModuleObjCpp/header/serializeConstantsStruct.js +23 -21
  84. package/lib/generators/modules/GenerateModuleObjCpp/header/serializeConstantsStruct.js.flow +19 -18
  85. package/lib/generators/modules/GenerateModuleObjCpp/header/serializeRegularStruct.js +23 -21
  86. package/lib/generators/modules/GenerateModuleObjCpp/header/serializeRegularStruct.js.flow +19 -18
  87. package/lib/generators/modules/GenerateModuleObjCpp/index.js +18 -20
  88. package/lib/generators/modules/GenerateModuleObjCpp/index.js.flow +11 -14
  89. package/lib/generators/modules/GenerateModuleObjCpp/serializeMethod.js +40 -42
  90. package/lib/generators/modules/GenerateModuleObjCpp/serializeMethod.js.flow +38 -44
  91. package/lib/generators/modules/GenerateModuleObjCpp/source/serializeModule.js +25 -27
  92. package/lib/generators/modules/GenerateModuleObjCpp/source/serializeModule.js.flow +26 -28
  93. package/lib/generators/modules/Utils.js +98 -0
  94. package/lib/generators/modules/Utils.js.flow +34 -2
  95. package/lib/generators/modules/__test_fixtures__/fixtures.js +685 -64
  96. package/lib/generators/modules/__test_fixtures__/fixtures.js.flow +686 -64
  97. package/lib/parsers/error-utils.js +17 -17
  98. package/lib/parsers/error-utils.js.flow +10 -10
  99. package/lib/parsers/errors.js +10 -0
  100. package/lib/parsers/errors.js.flow +15 -1
  101. package/lib/parsers/flow/components/__test_fixtures__/fixtures.js +7 -1
  102. package/lib/parsers/flow/components/__test_fixtures__/fixtures.js.flow +7 -1
  103. package/lib/parsers/flow/components/commands.js +24 -0
  104. package/lib/parsers/flow/components/commands.js.flow +45 -3
  105. package/lib/parsers/flow/components/componentsUtils.js +5 -4
  106. package/lib/parsers/flow/components/componentsUtils.js.flow +4 -3
  107. package/lib/parsers/flow/components/events.js +7 -7
  108. package/lib/parsers/flow/components/events.js.flow +7 -7
  109. package/lib/parsers/flow/components/index.js +8 -8
  110. package/lib/parsers/flow/components/index.js.flow +3 -3
  111. package/lib/parsers/flow/modules/__test_fixtures__/fixtures.js +13 -0
  112. package/lib/parsers/flow/modules/__test_fixtures__/fixtures.js.flow +13 -0
  113. package/lib/parsers/flow/modules/index.js +20 -19
  114. package/lib/parsers/flow/modules/index.js.flow +10 -11
  115. package/lib/parsers/flow/parseFlowAndThrowErrors.js +105 -0
  116. package/lib/parsers/flow/parseFlowAndThrowErrors.js.flow +41 -0
  117. package/lib/parsers/flow/parser.js +24 -25
  118. package/lib/parsers/flow/parser.js.flow +27 -36
  119. package/lib/parsers/flow/utils.js.flow +1 -1
  120. package/lib/parsers/parser.js.flow +12 -10
  121. package/lib/parsers/parserMock.js +11 -12
  122. package/lib/parsers/parserMock.js.flow +25 -28
  123. package/lib/parsers/parsers-commons.js +85 -36
  124. package/lib/parsers/parsers-commons.js.flow +71 -37
  125. package/lib/parsers/parsers-primitives.js +17 -17
  126. package/lib/parsers/parsers-primitives.js.flow +14 -16
  127. package/lib/parsers/schema.js.flow +3 -3
  128. package/lib/parsers/typescript/components/__test_fixtures__/fixtures.js +8 -1
  129. package/lib/parsers/typescript/components/__test_fixtures__/fixtures.js.flow +8 -1
  130. package/lib/parsers/typescript/components/commands.js +23 -15
  131. package/lib/parsers/typescript/components/commands.js.flow +24 -16
  132. package/lib/parsers/typescript/components/componentsUtils.js +34 -20
  133. package/lib/parsers/typescript/components/componentsUtils.js.flow +36 -19
  134. package/lib/parsers/typescript/components/events.js +22 -22
  135. package/lib/parsers/typescript/components/events.js.flow +11 -10
  136. package/lib/parsers/typescript/components/extends.js.flow +1 -0
  137. package/lib/parsers/typescript/components/index.js +10 -10
  138. package/lib/parsers/typescript/components/index.js.flow +4 -4
  139. package/lib/parsers/typescript/modules/__test_fixtures__/fixtures.js +13 -0
  140. package/lib/parsers/typescript/modules/__test_fixtures__/fixtures.js.flow +13 -0
  141. package/lib/parsers/typescript/modules/index.js +25 -20
  142. package/lib/parsers/typescript/modules/index.js.flow +16 -14
  143. package/lib/parsers/typescript/parser.js +25 -26
  144. package/lib/parsers/typescript/parser.js.flow +23 -27
  145. package/lib/parsers/utils.js +5 -0
  146. package/lib/parsers/utils.js.flow +6 -1
  147. package/package.json +8 -6
@@ -10,28 +10,28 @@
10
10
 
11
11
  'use strict';
12
12
 
13
- const _require = require('./componentsUtils'),
14
- flattenProperties = _require.flattenProperties;
15
- const _require2 = require('../parseTopLevelType'),
16
- parseTopLevelType = _require2.parseTopLevelType;
17
- const _require3 = require('../../error-utils'),
18
- throwIfEventHasNoName = _require3.throwIfEventHasNoName,
19
- throwIfBubblingTypeIsNull = _require3.throwIfBubblingTypeIsNull,
20
- throwIfArgumentPropsAreNull = _require3.throwIfArgumentPropsAreNull;
21
- const _require4 = require('../../parsers-commons'),
22
- getEventArgument = _require4.getEventArgument,
23
- buildPropertiesForEvent = _require4.buildPropertiesForEvent,
24
- handleEventHandler = _require4.handleEventHandler,
25
- emitBuildEventSchema = _require4.emitBuildEventSchema;
26
- const _require5 = require('../../parsers-primitives'),
27
- emitBoolProp = _require5.emitBoolProp,
28
- emitDoubleProp = _require5.emitDoubleProp,
29
- emitFloatProp = _require5.emitFloatProp,
30
- emitMixedProp = _require5.emitMixedProp,
31
- emitStringProp = _require5.emitStringProp,
32
- emitInt32Prop = _require5.emitInt32Prop,
33
- emitObjectProp = _require5.emitObjectProp,
34
- emitUnionProp = _require5.emitUnionProp;
13
+ const _require = require('../../error-utils'),
14
+ throwIfArgumentPropsAreNull = _require.throwIfArgumentPropsAreNull,
15
+ throwIfBubblingTypeIsNull = _require.throwIfBubblingTypeIsNull,
16
+ throwIfEventHasNoName = _require.throwIfEventHasNoName;
17
+ const _require2 = require('../../parsers-commons'),
18
+ buildPropertiesForEvent = _require2.buildPropertiesForEvent,
19
+ emitBuildEventSchema = _require2.emitBuildEventSchema,
20
+ getEventArgument = _require2.getEventArgument,
21
+ handleEventHandler = _require2.handleEventHandler;
22
+ const _require3 = require('../../parsers-primitives'),
23
+ emitBoolProp = _require3.emitBoolProp,
24
+ emitDoubleProp = _require3.emitDoubleProp,
25
+ emitFloatProp = _require3.emitFloatProp,
26
+ emitInt32Prop = _require3.emitInt32Prop,
27
+ emitMixedProp = _require3.emitMixedProp,
28
+ emitObjectProp = _require3.emitObjectProp,
29
+ emitStringProp = _require3.emitStringProp,
30
+ emitUnionProp = _require3.emitUnionProp;
31
+ const _require4 = require('../parseTopLevelType'),
32
+ parseTopLevelType = _require4.parseTopLevelType;
33
+ const _require5 = require('./componentsUtils'),
34
+ flattenProperties = _require5.flattenProperties;
35
35
  function getPropertyType(
36
36
  /* $FlowFixMe[missing-local-annot] The type annotation(s) required by Flow's
37
37
  * LTI update could not be added via codemod */
@@ -11,35 +11,36 @@
11
11
  'use strict';
12
12
 
13
13
  import type {
14
+ EventTypeAnnotation,
14
15
  EventTypeShape,
15
16
  NamedShape,
16
- EventTypeAnnotation,
17
17
  } from '../../../CodegenSchema.js';
18
- import type {TypeDeclarationMap} from '../../utils';
19
18
  import type {Parser} from '../../parser';
20
- const {flattenProperties} = require('./componentsUtils');
21
- const {parseTopLevelType} = require('../parseTopLevelType');
19
+ import type {TypeDeclarationMap} from '../../utils';
20
+
22
21
  const {
23
- throwIfEventHasNoName,
24
- throwIfBubblingTypeIsNull,
25
22
  throwIfArgumentPropsAreNull,
23
+ throwIfBubblingTypeIsNull,
24
+ throwIfEventHasNoName,
26
25
  } = require('../../error-utils');
27
26
  const {
28
- getEventArgument,
29
27
  buildPropertiesForEvent,
30
- handleEventHandler,
31
28
  emitBuildEventSchema,
29
+ getEventArgument,
30
+ handleEventHandler,
32
31
  } = require('../../parsers-commons');
33
32
  const {
34
33
  emitBoolProp,
35
34
  emitDoubleProp,
36
35
  emitFloatProp,
37
- emitMixedProp,
38
- emitStringProp,
39
36
  emitInt32Prop,
37
+ emitMixedProp,
40
38
  emitObjectProp,
39
+ emitStringProp,
41
40
  emitUnionProp,
42
41
  } = require('../../parsers-primitives');
42
+ const {parseTopLevelType} = require('../parseTopLevelType');
43
+ const {flattenProperties} = require('./componentsUtils');
43
44
  function getPropertyType(
44
45
  /* $FlowFixMe[missing-local-annot] The type annotation(s) required by Flow's
45
46
  * LTI update could not be added via codemod */
@@ -11,6 +11,7 @@
11
11
  'use strict';
12
12
 
13
13
  import type {TypeDeclarationMap} from '../../utils';
14
+
14
15
  const {parseTopLevelType} = require('../parseTopLevelType');
15
16
 
16
17
  function isEvent(typeAnnotation: $FlowFixMe): boolean {
@@ -10,16 +10,16 @@
10
10
 
11
11
  'use strict';
12
12
 
13
- const _require = require('./commands'),
14
- getCommands = _require.getCommands;
15
- const _require2 = require('./events'),
16
- getEvents = _require2.getEvents;
17
- const _require3 = require('./extends'),
18
- categorizeProps = _require3.categorizeProps;
19
- const _require4 = require('../../parsers-commons'),
20
- getOptions = _require4.getOptions,
21
- findComponentConfig = _require4.findComponentConfig,
22
- getCommandProperties = _require4.getCommandProperties;
13
+ const _require = require('../../parsers-commons'),
14
+ findComponentConfig = _require.findComponentConfig,
15
+ getCommandProperties = _require.getCommandProperties,
16
+ getOptions = _require.getOptions;
17
+ const _require2 = require('./commands'),
18
+ getCommands = _require2.getCommands;
19
+ const _require3 = require('./events'),
20
+ getEvents = _require3.getEvents;
21
+ const _require4 = require('./extends'),
22
+ categorizeProps = _require4.categorizeProps;
23
23
 
24
24
  // $FlowFixMe[unclear-type] TODO(T108222691): Use flow-types for @babel/parser
25
25
 
@@ -12,14 +12,14 @@
12
12
  import type {Parser} from '../../parser';
13
13
  import type {ComponentSchemaBuilderConfig} from '../../schema.js';
14
14
 
15
- const {getCommands} = require('./commands');
16
- const {getEvents} = require('./events');
17
- const {categorizeProps} = require('./extends');
18
15
  const {
19
- getOptions,
20
16
  findComponentConfig,
21
17
  getCommandProperties,
18
+ getOptions,
22
19
  } = require('../../parsers-commons');
20
+ const {getCommands} = require('./commands');
21
+ const {getEvents} = require('./events');
22
+ const {categorizeProps} = require('./extends');
23
23
 
24
24
  // $FlowFixMe[unclear-type] TODO(T108222691): Use flow-types for @babel/parser
25
25
  type PropsAST = Object;
@@ -796,10 +796,23 @@ export type ChooseFloat = 1.44 | 2.88 | 5.76;
796
796
  export type ChooseObject = {} | {low: string};
797
797
  export type ChooseString = 'One' | 'Two' | 'Three';
798
798
 
799
+ export type BinaryTreeNode = {
800
+ left?: BinaryTreeNode,
801
+ value: number,
802
+ right?: BinaryTreeNode,
803
+ };
804
+
805
+ export type GraphNode = {
806
+ label: string,
807
+ neighbors?: Array<GraphNode>,
808
+ };
809
+
799
810
  export interface Spec extends TurboModule {
800
811
  readonly getCallback: () => () => void;
801
812
  readonly getMixed: (arg: unknown) => unknown;
802
813
  readonly getEnums: (quality: Quality, resolution?: Resolution, floppy: Floppy, stringOptions: StringOptions) => string;
814
+ readonly getBinaryTreeNode: (arg: BinaryTreeNode) => BinaryTreeNode;
815
+ readonly getGraphNode: (arg: GraphNode) => GraphNode;
803
816
  readonly getMap: (arg: {[a: string]: number | null;}) => {[b: string]: number | null;};
804
817
  readonly getAnotherMap: (arg: {[key: string]: string}) => {[key: string]: string};
805
818
  readonly getUnion: (chooseInt: ChooseInt, chooseFloat: ChooseFloat, chooseObject: ChooseObject, chooseString: ChooseString) => ChooseObject;
@@ -825,10 +825,23 @@ export type ChooseFloat = 1.44 | 2.88 | 5.76;
825
825
  export type ChooseObject = {} | {low: string};
826
826
  export type ChooseString = 'One' | 'Two' | 'Three';
827
827
 
828
+ export type BinaryTreeNode = {
829
+ left?: BinaryTreeNode,
830
+ value: number,
831
+ right?: BinaryTreeNode,
832
+ };
833
+
834
+ export type GraphNode = {
835
+ label: string,
836
+ neighbors?: Array<GraphNode>,
837
+ };
838
+
828
839
  export interface Spec extends TurboModule {
829
840
  readonly getCallback: () => () => void;
830
841
  readonly getMixed: (arg: unknown) => unknown;
831
842
  readonly getEnums: (quality: Quality, resolution?: Resolution, floppy: Floppy, stringOptions: StringOptions) => string;
843
+ readonly getBinaryTreeNode: (arg: BinaryTreeNode) => BinaryTreeNode;
844
+ readonly getGraphNode: (arg: GraphNode) => GraphNode;
832
845
  readonly getMap: (arg: {[a: string]: number | null;}) => {[b: string]: number | null;};
833
846
  readonly getAnotherMap: (arg: {[key: string]: string}) => {[key: string]: string};
834
847
  readonly getUnion: (chooseInt: ChooseInt, chooseFloat: ChooseFloat, chooseObject: ChooseObject, chooseString: ChooseString) => ChooseObject;
@@ -10,32 +10,33 @@
10
10
 
11
11
  'use strict';
12
12
 
13
- const _require = require('../parseTopLevelType'),
14
- flattenIntersectionType = _require.flattenIntersectionType;
15
- const _require2 = require('../components/componentsUtils'),
16
- flattenProperties = _require2.flattenProperties;
17
- const _require3 = require('../../parsers-commons'),
18
- parseObjectProperty = _require3.parseObjectProperty;
19
- const _require4 = require('../../parsers-primitives'),
20
- emitArrayType = _require4.emitArrayType,
21
- emitFunction = _require4.emitFunction,
22
- emitDictionary = _require4.emitDictionary,
23
- emitPromise = _require4.emitPromise,
24
- emitRootTag = _require4.emitRootTag,
25
- emitUnion = _require4.emitUnion,
26
- emitCommonTypes = _require4.emitCommonTypes,
27
- typeAliasResolution = _require4.typeAliasResolution,
28
- typeEnumResolution = _require4.typeEnumResolution,
29
- translateArrayTypeAnnotation = _require4.translateArrayTypeAnnotation;
30
- const _require5 = require('../../errors'),
31
- UnsupportedGenericParserError = _require5.UnsupportedGenericParserError,
13
+ const _require = require('../../errors'),
14
+ UnsupportedGenericParserError = _require.UnsupportedGenericParserError,
32
15
  UnsupportedTypeAnnotationParserError =
33
- _require5.UnsupportedTypeAnnotationParserError;
16
+ _require.UnsupportedTypeAnnotationParserError;
17
+ const _require2 = require('../../parsers-commons'),
18
+ parseObjectProperty = _require2.parseObjectProperty;
19
+ const _require3 = require('../../parsers-primitives'),
20
+ emitArrayType = _require3.emitArrayType,
21
+ emitCommonTypes = _require3.emitCommonTypes,
22
+ emitDictionary = _require3.emitDictionary,
23
+ emitFunction = _require3.emitFunction,
24
+ emitPromise = _require3.emitPromise,
25
+ emitRootTag = _require3.emitRootTag,
26
+ emitUnion = _require3.emitUnion,
27
+ translateArrayTypeAnnotation = _require3.translateArrayTypeAnnotation,
28
+ typeAliasResolution = _require3.typeAliasResolution,
29
+ typeEnumResolution = _require3.typeEnumResolution;
30
+ const _require4 = require('../components/componentsUtils'),
31
+ flattenProperties = _require4.flattenProperties;
32
+ const _require5 = require('../parseTopLevelType'),
33
+ flattenIntersectionType = _require5.flattenIntersectionType;
34
34
  function translateObjectTypeAnnotation(
35
35
  hasteModuleName,
36
36
  /**
37
37
  * TODO(T108222691): Use flow-types for @babel/parser
38
38
  */
39
+ typeScriptTypeAnnotation,
39
40
  nullable,
40
41
  objectMembers,
41
42
  typeResolutionStatus,
@@ -52,6 +53,7 @@ function translateObjectTypeAnnotation(
52
53
  .map(property => {
53
54
  return tryParse(() => {
54
55
  return parseObjectProperty(
56
+ typeScriptTypeAnnotation,
55
57
  property,
56
58
  hasteModuleName,
57
59
  types,
@@ -259,6 +261,7 @@ function translateTypeAnnotation(
259
261
  }
260
262
  return translateObjectTypeAnnotation(
261
263
  hasteModuleName,
264
+ typeScriptTypeAnnotation,
262
265
  nullable,
263
266
  flattenProperties([typeAnnotation], types, parser),
264
267
  typeResolutionStatus,
@@ -274,6 +277,7 @@ function translateTypeAnnotation(
274
277
  case 'TSIntersectionType': {
275
278
  return translateObjectTypeAnnotation(
276
279
  hasteModuleName,
280
+ typeScriptTypeAnnotation,
277
281
  nullable,
278
282
  flattenProperties(
279
283
  flattenIntersectionType(typeAnnotation, types),
@@ -316,6 +320,7 @@ function translateTypeAnnotation(
316
320
  }
317
321
  return translateObjectTypeAnnotation(
318
322
  hasteModuleName,
323
+ typeScriptTypeAnnotation,
319
324
  nullable,
320
325
  typeAnnotation.members,
321
326
  typeResolutionStatus,
@@ -13,46 +13,44 @@
13
13
  import type {
14
14
  NamedShape,
15
15
  NativeModuleAliasMap,
16
- NativeModuleEnumMap,
17
16
  NativeModuleBaseTypeAnnotation,
17
+ NativeModuleEnumMap,
18
18
  NativeModuleTypeAnnotation,
19
19
  Nullable,
20
20
  } from '../../../CodegenSchema';
21
-
22
21
  import type {Parser} from '../../parser';
23
22
  import type {
24
23
  ParserErrorCapturer,
25
- TypeResolutionStatus,
26
24
  TypeDeclarationMap,
25
+ TypeResolutionStatus,
27
26
  } from '../../utils';
28
- const {flattenIntersectionType} = require('../parseTopLevelType');
29
- const {flattenProperties} = require('../components/componentsUtils');
30
27
 
28
+ const {
29
+ UnsupportedGenericParserError,
30
+ UnsupportedTypeAnnotationParserError,
31
+ } = require('../../errors');
31
32
  const {parseObjectProperty} = require('../../parsers-commons');
32
-
33
33
  const {
34
34
  emitArrayType,
35
- emitFunction,
35
+ emitCommonTypes,
36
36
  emitDictionary,
37
+ emitFunction,
37
38
  emitPromise,
38
39
  emitRootTag,
39
40
  emitUnion,
40
- emitCommonTypes,
41
+ translateArrayTypeAnnotation,
41
42
  typeAliasResolution,
42
43
  typeEnumResolution,
43
- translateArrayTypeAnnotation,
44
44
  } = require('../../parsers-primitives');
45
-
46
- const {
47
- UnsupportedGenericParserError,
48
- UnsupportedTypeAnnotationParserError,
49
- } = require('../../errors');
45
+ const {flattenProperties} = require('../components/componentsUtils');
46
+ const {flattenIntersectionType} = require('../parseTopLevelType');
50
47
 
51
48
  function translateObjectTypeAnnotation(
52
49
  hasteModuleName: string,
53
50
  /**
54
51
  * TODO(T108222691): Use flow-types for @babel/parser
55
52
  */
53
+ typeScriptTypeAnnotation: $FlowFixMe,
56
54
  nullable: boolean,
57
55
  objectMembers: $ReadOnlyArray<$FlowFixMe>,
58
56
  typeResolutionStatus: TypeResolutionStatus,
@@ -69,6 +67,7 @@ function translateObjectTypeAnnotation(
69
67
  .map<?NamedShape<Nullable<NativeModuleBaseTypeAnnotation>>>(property => {
70
68
  return tryParse(() => {
71
69
  return parseObjectProperty(
70
+ typeScriptTypeAnnotation,
72
71
  property,
73
72
  hasteModuleName,
74
73
  types,
@@ -269,6 +268,7 @@ function translateTypeAnnotation(
269
268
 
270
269
  return translateObjectTypeAnnotation(
271
270
  hasteModuleName,
271
+ typeScriptTypeAnnotation,
272
272
  nullable,
273
273
  flattenProperties([typeAnnotation], types, parser),
274
274
  typeResolutionStatus,
@@ -284,6 +284,7 @@ function translateTypeAnnotation(
284
284
  case 'TSIntersectionType': {
285
285
  return translateObjectTypeAnnotation(
286
286
  hasteModuleName,
287
+ typeScriptTypeAnnotation,
287
288
  nullable,
288
289
  flattenProperties(
289
290
  flattenIntersectionType(typeAnnotation, types),
@@ -327,6 +328,7 @@ function translateTypeAnnotation(
327
328
 
328
329
  return translateObjectTypeAnnotation(
329
330
  hasteModuleName,
331
+ typeScriptTypeAnnotation,
330
332
  nullable,
331
333
  typeAnnotation.members,
332
334
  typeResolutionStatus,
@@ -38,35 +38,34 @@ function _toPrimitive(input, hint) {
38
38
  }
39
39
  return (hint === 'string' ? String : Number)(input);
40
40
  }
41
- const invariant = require('invariant');
42
- const _require = require('./modules'),
41
+ const _require = require('../errors'),
42
+ UnsupportedObjectPropertyTypeAnnotationParserError =
43
+ _require.UnsupportedObjectPropertyTypeAnnotationParserError;
44
+ const _require2 = require('../parsers-commons.js'),
45
+ buildModuleSchema = _require2.buildModuleSchema,
46
+ buildPropSchema = _require2.buildPropSchema,
47
+ buildSchema = _require2.buildSchema,
48
+ extendsForProp = _require2.extendsForProp,
49
+ handleGenericTypeAnnotation = _require2.handleGenericTypeAnnotation;
50
+ const _require3 = require('../parsers-primitives'),
51
+ Visitor = _require3.Visitor;
52
+ const _require4 = require('../schema.js'),
53
+ wrapComponentSchema = _require4.wrapComponentSchema;
54
+ const _require5 = require('./components'),
55
+ buildComponentSchema = _require5.buildComponentSchema;
56
+ const _require6 = require('./components/componentsUtils'),
57
+ flattenProperties = _require6.flattenProperties,
58
+ getSchemaInfo = _require6.getSchemaInfo,
59
+ getTypeAnnotation = _require6.getTypeAnnotation;
60
+ const _require7 = require('./modules'),
43
61
  typeScriptTranslateTypeAnnotation =
44
- _require.typeScriptTranslateTypeAnnotation;
45
-
62
+ _require7.typeScriptTranslateTypeAnnotation;
63
+ const _require8 = require('./parseTopLevelType'),
64
+ parseTopLevelType = _require8.parseTopLevelType;
46
65
  // $FlowFixMe[untyped-import] Use flow-types for @babel/parser
47
66
  const babelParser = require('@babel/parser');
48
- const _require2 = require('../parsers-primitives'),
49
- Visitor = _require2.Visitor;
50
- const _require3 = require('./components'),
51
- buildComponentSchema = _require3.buildComponentSchema;
52
- const _require4 = require('../schema.js'),
53
- wrapComponentSchema = _require4.wrapComponentSchema;
54
- const _require5 = require('../parsers-commons.js'),
55
- buildSchema = _require5.buildSchema,
56
- buildModuleSchema = _require5.buildModuleSchema,
57
- extendsForProp = _require5.extendsForProp,
58
- buildPropSchema = _require5.buildPropSchema,
59
- handleGenericTypeAnnotation = _require5.handleGenericTypeAnnotation;
60
- const _require6 = require('./parseTopLevelType'),
61
- parseTopLevelType = _require6.parseTopLevelType;
62
- const _require7 = require('./components/componentsUtils'),
63
- getSchemaInfo = _require7.getSchemaInfo,
64
- getTypeAnnotation = _require7.getTypeAnnotation,
65
- flattenProperties = _require7.flattenProperties;
66
67
  const fs = require('fs');
67
- const _require8 = require('../errors'),
68
- UnsupportedObjectPropertyTypeAnnotationParserError =
69
- _require8.UnsupportedObjectPropertyTypeAnnotationParserError;
68
+ const invariant = require('invariant');
70
69
  class TypeScriptParser {
71
70
  constructor() {
72
71
  _defineProperty(
@@ -148,7 +147,7 @@ class TypeScriptParser {
148
147
  const contents = fs.readFileSync(filename, 'utf8');
149
148
  return this.parseString(contents, 'path/NativeSampleTurboModule.ts');
150
149
  }
151
- getAst(contents) {
150
+ getAst(contents, filename) {
152
151
  return babelParser.parse(contents, {
153
152
  sourceType: 'module',
154
153
  plugins: ['typescript'],
@@ -11,17 +11,17 @@
11
11
  'use strict';
12
12
 
13
13
  import type {
14
- UnionTypeAnnotationMemberType,
15
- SchemaType,
14
+ ExtendsPropsShape,
16
15
  NamedShape,
17
- Nullable,
18
- NativeModuleParamTypeAnnotation,
19
- NativeModuleEnumMembers,
20
- NativeModuleEnumMemberType,
21
16
  NativeModuleAliasMap,
22
17
  NativeModuleEnumMap,
18
+ NativeModuleEnumMembers,
19
+ NativeModuleEnumMemberType,
20
+ NativeModuleParamTypeAnnotation,
21
+ Nullable,
23
22
  PropTypeAnnotation,
24
- ExtendsPropsShape,
23
+ SchemaType,
24
+ UnionTypeAnnotationMemberType,
25
25
  } from '../../CodegenSchema';
26
26
  import type {ParserType} from '../errors';
27
27
  import type {
@@ -32,39 +32,35 @@ import type {
32
32
  } from '../parser';
33
33
  import type {
34
34
  ParserErrorCapturer,
35
- TypeDeclarationMap,
36
35
  PropAST,
36
+ TypeDeclarationMap,
37
37
  TypeResolutionStatus,
38
38
  } from '../utils';
39
- const invariant = require('invariant');
40
-
41
- const {typeScriptTranslateTypeAnnotation} = require('./modules');
42
-
43
- // $FlowFixMe[untyped-import] Use flow-types for @babel/parser
44
- const babelParser = require('@babel/parser');
45
39
 
46
- const {Visitor} = require('../parsers-primitives');
47
- const {buildComponentSchema} = require('./components');
48
- const {wrapComponentSchema} = require('../schema.js');
49
40
  const {
50
- buildSchema,
41
+ UnsupportedObjectPropertyTypeAnnotationParserError,
42
+ } = require('../errors');
43
+ const {
51
44
  buildModuleSchema,
52
- extendsForProp,
53
45
  buildPropSchema,
46
+ buildSchema,
47
+ extendsForProp,
54
48
  handleGenericTypeAnnotation,
55
49
  } = require('../parsers-commons.js');
56
-
57
- const {parseTopLevelType} = require('./parseTopLevelType');
50
+ const {Visitor} = require('../parsers-primitives');
51
+ const {wrapComponentSchema} = require('../schema.js');
52
+ const {buildComponentSchema} = require('./components');
58
53
  const {
54
+ flattenProperties,
59
55
  getSchemaInfo,
60
56
  getTypeAnnotation,
61
- flattenProperties,
62
57
  } = require('./components/componentsUtils');
58
+ const {typeScriptTranslateTypeAnnotation} = require('./modules');
59
+ const {parseTopLevelType} = require('./parseTopLevelType');
60
+ // $FlowFixMe[untyped-import] Use flow-types for @babel/parser
61
+ const babelParser = require('@babel/parser');
63
62
  const fs = require('fs');
64
-
65
- const {
66
- UnsupportedObjectPropertyTypeAnnotationParserError,
67
- } = require('../errors');
63
+ const invariant = require('invariant');
68
64
 
69
65
  class TypeScriptParser implements Parser {
70
66
  typeParameterInstantiation: string = 'TSTypeParameterInstantiation';
@@ -146,7 +142,7 @@ class TypeScriptParser implements Parser {
146
142
  return this.parseString(contents, 'path/NativeSampleTurboModule.ts');
147
143
  }
148
144
 
149
- getAst(contents: string): $FlowFixMe {
145
+ getAst(contents: string, filename?: ?string): $FlowFixMe {
150
146
  return babelParser.parse(contents, {
151
147
  sourceType: 'module',
152
148
  plugins: ['typescript'],
@@ -50,6 +50,11 @@ function verifyPlatforms(hasteModuleName, moduleName) {
50
50
  excludedPlatforms.add('android');
51
51
  return;
52
52
  }
53
+ if (name.endsWith('Windows')) {
54
+ excludedPlatforms.add('iOS');
55
+ excludedPlatforms.add('android');
56
+ return;
57
+ }
53
58
  if (name.endsWith('Cxx')) {
54
59
  cxxOnly = true;
55
60
  excludedPlatforms.add('iOS');
@@ -11,7 +11,6 @@
11
11
  'use strict';
12
12
 
13
13
  const {ParserError} = require('./errors');
14
-
15
14
  const path = require('path');
16
15
 
17
16
  export type TypeDeclarationMap = {[declarationName: string]: $FlowFixMe};
@@ -86,6 +85,12 @@ function verifyPlatforms(
86
85
  return;
87
86
  }
88
87
 
88
+ if (name.endsWith('Windows')) {
89
+ excludedPlatforms.add('iOS');
90
+ excludedPlatforms.add('android');
91
+ return;
92
+ }
93
+
89
94
  if (name.endsWith('Cxx')) {
90
95
  cxxOnly = true;
91
96
  excludedPlatforms.add('iOS');
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@react-native/codegen",
3
- "version": "0.74.0",
3
+ "version": "0.75.0-nightly-20240221-a1171f79f",
4
4
  "description": "Code generation tools for React Native",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -30,8 +30,11 @@
30
30
  ],
31
31
  "dependencies": {
32
32
  "@babel/parser": "^7.20.0",
33
- "flow-parser": "^0.206.0",
33
+ "glob": "^7.1.1",
34
+ "hermes-parser": "0.19.1",
35
+ "invariant": "^2.2.4",
34
36
  "jscodeshift": "^0.14.0",
37
+ "mkdirp": "^0.5.1",
35
38
  "nullthrows": "^1.1.1"
36
39
  },
37
40
  "devDependencies": {
@@ -46,12 +49,11 @@
46
49
  "@babel/plugin-transform-flow-strip-types": "^7.20.0",
47
50
  "@babel/preset-env": "^7.20.0",
48
51
  "chalk": "^4.0.0",
49
- "glob": "^7.1.1",
50
- "invariant": "^2.2.4",
52
+ "hermes-estree": "0.19.1",
51
53
  "micromatch": "^4.0.4",
52
- "mkdirp": "^0.5.1",
53
54
  "prettier": "2.8.8",
54
- "rimraf": "^3.0.2"
55
+ "rimraf": "^3.0.2",
56
+ "yargs": "^17.6.2"
55
57
  },
56
58
  "peerDependencies": {
57
59
  "@babel/preset-env": "^7.1.6"