@react-native/codegen 0.72.1 → 0.72.3

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 (125) hide show
  1. package/lib/CodegenSchema.d.ts +348 -0
  2. package/lib/CodegenSchema.js.flow +31 -3
  3. package/lib/SchemaValidator.d.ts +11 -0
  4. package/lib/cli/combine/combine-js-to-schema.js +8 -8
  5. package/lib/cli/combine/combine-js-to-schema.js.flow +8 -7
  6. package/lib/cli/parser/parser.js +8 -15
  7. package/lib/cli/parser/parser.js.flow +8 -14
  8. package/lib/generators/Utils.js +16 -0
  9. package/lib/generators/Utils.js.flow +20 -0
  10. package/lib/generators/__test_fixtures__/fixtures.js +2 -1
  11. package/lib/generators/__test_fixtures__/fixtures.js.flow +2 -1
  12. package/lib/generators/components/ComponentsGeneratorUtils.js +10 -1
  13. package/lib/generators/components/ComponentsGeneratorUtils.js.flow +12 -2
  14. package/lib/generators/components/CppHelpers.js +8 -15
  15. package/lib/generators/components/CppHelpers.js.flow +8 -19
  16. package/lib/generators/components/GenerateEventEmitterCpp.js +7 -3
  17. package/lib/generators/components/GenerateEventEmitterCpp.js.flow +7 -3
  18. package/lib/generators/components/GenerateEventEmitterH.js +2 -2
  19. package/lib/generators/components/GenerateEventEmitterH.js.flow +1 -2
  20. package/lib/generators/components/GeneratePropsH.js +3 -4
  21. package/lib/generators/components/GeneratePropsH.js.flow +2 -4
  22. package/lib/generators/components/GeneratePropsJavaDelegate.js +2 -0
  23. package/lib/generators/components/GeneratePropsJavaDelegate.js.flow +2 -0
  24. package/lib/generators/components/GeneratePropsJavaInterface.js +3 -0
  25. package/lib/generators/components/GeneratePropsJavaInterface.js.flow +3 -0
  26. package/lib/generators/components/GeneratePropsJavaPojo/serializePojo.js +8 -0
  27. package/lib/generators/components/GeneratePropsJavaPojo/serializePojo.js.flow +12 -0
  28. package/lib/generators/components/GenerateTests.js +3 -2
  29. package/lib/generators/components/GenerateTests.js.flow +3 -1
  30. package/lib/generators/components/GenerateViewConfigJs.js +5 -2
  31. package/lib/generators/components/GenerateViewConfigJs.js.flow +5 -2
  32. package/lib/generators/components/JavaHelpers.js +9 -0
  33. package/lib/generators/components/JavaHelpers.js.flow +12 -1
  34. package/lib/generators/components/__test_fixtures__/fixtures.js +41 -0
  35. package/lib/generators/components/__test_fixtures__/fixtures.js.flow +42 -0
  36. package/lib/generators/modules/GenerateModuleCpp.js +9 -4
  37. package/lib/generators/modules/GenerateModuleCpp.js.flow +11 -3
  38. package/lib/generators/modules/GenerateModuleH.js +185 -33
  39. package/lib/generators/modules/GenerateModuleH.js.flow +203 -25
  40. package/lib/generators/modules/GenerateModuleJavaSpec.js +2 -2
  41. package/lib/generators/modules/GenerateModuleJavaSpec.js.flow +5 -5
  42. package/lib/generators/modules/GenerateModuleJniCpp.js +2 -2
  43. package/lib/generators/modules/GenerateModuleJniCpp.js.flow +5 -5
  44. package/lib/generators/modules/GenerateModuleObjCpp/index.js +2 -2
  45. package/lib/generators/modules/GenerateModuleObjCpp/index.js.flow +2 -2
  46. package/lib/generators/modules/GenerateModuleObjCpp/serializeMethod.js.flow +2 -2
  47. package/lib/generators/modules/Utils.js +4 -0
  48. package/lib/generators/modules/Utils.js.flow +6 -0
  49. package/lib/generators/modules/__test_fixtures__/fixtures.js +152 -10
  50. package/lib/generators/modules/__test_fixtures__/fixtures.js.flow +152 -10
  51. package/lib/parsers/error-utils.js +42 -19
  52. package/lib/parsers/error-utils.js.flow +46 -19
  53. package/lib/parsers/errors.d.ts +10 -0
  54. package/lib/parsers/errors.js +9 -29
  55. package/lib/parsers/errors.js.flow +2 -20
  56. package/lib/parsers/flow/Visitor.js +37 -0
  57. package/lib/parsers/flow/Visitor.js.flow +41 -0
  58. package/lib/parsers/flow/components/__test_fixtures__/fixtures.js +20 -2
  59. package/lib/parsers/flow/components/__test_fixtures__/fixtures.js.flow +20 -2
  60. package/lib/parsers/flow/components/commands.js +3 -0
  61. package/lib/parsers/flow/components/commands.js.flow +2 -1
  62. package/lib/parsers/flow/components/componentsUtils.js +10 -0
  63. package/lib/parsers/flow/components/componentsUtils.js.flow +11 -1
  64. package/lib/parsers/flow/components/events.js.flow +1 -1
  65. package/lib/parsers/flow/components/extends.js.flow +1 -1
  66. package/lib/parsers/flow/components/index.js +16 -20
  67. package/lib/parsers/flow/components/index.js.flow +8 -7
  68. package/lib/parsers/flow/components/options.js.flow +1 -1
  69. package/lib/parsers/flow/components/props.js.flow +1 -1
  70. package/lib/parsers/flow/modules/__test_fixtures__/failures.js +54 -0
  71. package/lib/parsers/flow/modules/__test_fixtures__/failures.js.flow +56 -0
  72. package/lib/parsers/flow/modules/__test_fixtures__/fixtures.js +64 -1
  73. package/lib/parsers/flow/modules/__test_fixtures__/fixtures.js.flow +66 -1
  74. package/lib/parsers/flow/modules/index.js +112 -48
  75. package/lib/parsers/flow/modules/index.js.flow +115 -44
  76. package/lib/parsers/flow/parser.d.ts +10 -0
  77. package/lib/parsers/flow/parser.js +173 -32
  78. package/lib/parsers/flow/parser.js.flow +201 -24
  79. package/lib/parsers/flow/utils.js +33 -57
  80. package/lib/parsers/flow/utils.js.flow +37 -60
  81. package/lib/parsers/parser.d.ts +17 -0
  82. package/lib/parsers/parser.js.flow +124 -17
  83. package/lib/parsers/parserMock.js +101 -30
  84. package/lib/parsers/parserMock.js.flow +139 -24
  85. package/lib/parsers/parsers-commons.js +121 -119
  86. package/lib/parsers/parsers-commons.js.flow +136 -131
  87. package/lib/parsers/parsers-primitives.js +75 -12
  88. package/lib/parsers/parsers-primitives.js.flow +92 -13
  89. package/lib/parsers/schema/index.d.ts +10 -0
  90. package/lib/parsers/{typescript/components/schema.js.flow → schema.js.flow} +1 -1
  91. package/lib/parsers/typescript/Visitor.js +42 -0
  92. package/lib/parsers/typescript/Visitor.js.flow +47 -0
  93. package/lib/parsers/typescript/components/__test_fixtures__/fixtures.js +22 -0
  94. package/lib/parsers/typescript/components/__test_fixtures__/fixtures.js.flow +22 -0
  95. package/lib/parsers/typescript/components/commands.js +3 -0
  96. package/lib/parsers/typescript/components/commands.js.flow +2 -1
  97. package/lib/parsers/typescript/components/componentsUtils.js +5 -0
  98. package/lib/parsers/typescript/components/componentsUtils.js.flow +6 -1
  99. package/lib/parsers/typescript/components/events.js.flow +1 -1
  100. package/lib/parsers/typescript/components/extends.js.flow +1 -1
  101. package/lib/parsers/typescript/components/index.js +15 -19
  102. package/lib/parsers/typescript/components/index.js.flow +8 -7
  103. package/lib/parsers/typescript/components/options.js.flow +1 -1
  104. package/lib/parsers/typescript/components/props.js.flow +1 -1
  105. package/lib/parsers/typescript/modules/__test_fixtures__/failures.js +52 -0
  106. package/lib/parsers/typescript/modules/__test_fixtures__/failures.js.flow +54 -0
  107. package/lib/parsers/typescript/modules/__test_fixtures__/fixtures.js +142 -0
  108. package/lib/parsers/typescript/modules/__test_fixtures__/fixtures.js.flow +146 -0
  109. package/lib/parsers/typescript/modules/index.js +276 -110
  110. package/lib/parsers/typescript/modules/index.js.flow +237 -68
  111. package/lib/parsers/typescript/parser.d.ts +10 -0
  112. package/lib/parsers/typescript/parser.js +175 -25
  113. package/lib/parsers/typescript/parser.js.flow +184 -26
  114. package/lib/parsers/typescript/utils.js +40 -51
  115. package/lib/parsers/typescript/utils.js.flow +44 -55
  116. package/lib/parsers/utils.js +0 -125
  117. package/lib/parsers/utils.js.flow +3 -70
  118. package/package.json +4 -1
  119. package/lib/parsers/flow/components/schema.js +0 -106
  120. package/lib/parsers/flow/components/schema.js.flow +0 -62
  121. package/lib/parsers/flow/index.js +0 -80
  122. package/lib/parsers/flow/index.js.flow +0 -85
  123. package/lib/parsers/typescript/index.js +0 -85
  124. package/lib/parsers/typescript/index.js.flow +0 -94
  125. /package/lib/parsers/{typescript/components/schema.js → schema.js} +0 -0
@@ -24,6 +24,8 @@ const _require = require('./errors'),
24
24
  _require.IncorrectModuleRegistryCallArityParserError,
25
25
  IncorrectModuleRegistryCallTypeParameterParserError =
26
26
  _require.IncorrectModuleRegistryCallTypeParameterParserError,
27
+ IncorrectModuleRegistryCallArgumentTypeParserError =
28
+ _require.IncorrectModuleRegistryCallArgumentTypeParserError,
27
29
  UnsupportedObjectPropertyValueTypeAnnotationParserError =
28
30
  _require.UnsupportedObjectPropertyValueTypeAnnotationParserError,
29
31
  UntypedModuleRegistryCallParserError =
@@ -67,14 +69,12 @@ function throwIfMoreThanOneModuleRegistryCalls(
67
69
  hasteModuleName,
68
70
  callExpressions,
69
71
  callExpressionsLength,
70
- language,
71
72
  ) {
72
73
  if (callExpressions.length > 1) {
73
74
  throw new MoreThanOneModuleRegistryCallsParserError(
74
75
  hasteModuleName,
75
76
  callExpressions,
76
77
  callExpressionsLength,
77
- language,
78
78
  );
79
79
  }
80
80
  }
@@ -82,14 +82,9 @@ function throwIfUnusedModuleInterfaceParserError(
82
82
  nativeModuleName,
83
83
  moduleSpec,
84
84
  callExpressions,
85
- language,
86
85
  ) {
87
86
  if (callExpressions.length === 0) {
88
- throw new UnusedModuleInterfaceParserError(
89
- nativeModuleName,
90
- moduleSpec,
91
- language,
92
- );
87
+ throw new UnusedModuleInterfaceParserError(nativeModuleName, moduleSpec);
93
88
  }
94
89
  }
95
90
  function throwIfWrongNumberOfCallExpressionArgs(
@@ -97,7 +92,6 @@ function throwIfWrongNumberOfCallExpressionArgs(
97
92
  flowCallExpression,
98
93
  methodName,
99
94
  numberOfCallExpressionArgs,
100
- language,
101
95
  ) {
102
96
  if (numberOfCallExpressionArgs !== 1) {
103
97
  throw new IncorrectModuleRegistryCallArityParserError(
@@ -105,7 +99,6 @@ function throwIfWrongNumberOfCallExpressionArgs(
105
99
  flowCallExpression,
106
100
  methodName,
107
101
  numberOfCallExpressionArgs,
108
- language,
109
102
  );
110
103
  }
111
104
  }
@@ -122,7 +115,6 @@ function throwIfIncorrectModuleRegistryCallTypeParameterParserError(
122
115
  typeArguments,
123
116
  methodName,
124
117
  moduleName,
125
- parser.language(),
126
118
  );
127
119
  }
128
120
  if (parser.checkIfInvalidModule(typeArguments)) {
@@ -133,7 +125,6 @@ function throwIfUnsupportedFunctionReturnTypeAnnotationParserError(
133
125
  nativeModuleName,
134
126
  returnTypeAnnotation,
135
127
  invalidReturnType,
136
- language,
137
128
  cxxOnly,
138
129
  returnType,
139
130
  ) {
@@ -142,7 +133,6 @@ function throwIfUnsupportedFunctionReturnTypeAnnotationParserError(
142
133
  nativeModuleName,
143
134
  returnTypeAnnotation.returnType,
144
135
  'FunctionTypeAnnotation',
145
- language,
146
136
  );
147
137
  }
148
138
  }
@@ -152,7 +142,6 @@ function throwIfUntypedModule(
152
142
  callExpression,
153
143
  methodName,
154
144
  moduleName,
155
- language,
156
145
  ) {
157
146
  if (typeArguments == null) {
158
147
  throw new UntypedModuleRegistryCallParserError(
@@ -160,7 +149,6 @@ function throwIfUntypedModule(
160
149
  callExpression,
161
150
  methodName,
162
151
  moduleName,
163
- language,
164
152
  );
165
153
  }
166
154
  }
@@ -203,7 +191,6 @@ function throwIfPropertyValueTypeIsUnsupported(
203
191
  propertyValue,
204
192
  propertyKey,
205
193
  type,
206
- language,
207
194
  ) {
208
195
  const invalidPropertyValueType =
209
196
  UnsupportedObjectPropertyTypeToInvalidPropertyValueTypeMap[type];
@@ -212,7 +199,6 @@ function throwIfPropertyValueTypeIsUnsupported(
212
199
  propertyValue,
213
200
  propertyKey,
214
201
  invalidPropertyValueType,
215
- language,
216
202
  );
217
203
  }
218
204
  function throwIfMoreThanOneModuleInterfaceParserError(
@@ -247,7 +233,6 @@ function throwIfArrayElementTypeAnnotationIsUnsupported(
247
233
  flowElementType,
248
234
  flowArrayType,
249
235
  type,
250
- language,
251
236
  ) {
252
237
  const TypeMap = {
253
238
  FunctionTypeAnnotation: 'FunctionTypeAnnotation',
@@ -263,10 +248,45 @@ function throwIfArrayElementTypeAnnotationIsUnsupported(
263
248
  flowElementType,
264
249
  flowArrayType,
265
250
  TypeMap[type],
266
- language,
267
251
  );
268
252
  }
269
253
  }
254
+ function throwIfIncorrectModuleRegistryCallArgument(
255
+ nativeModuleName,
256
+ callExpressionArg,
257
+ methodName,
258
+ ) {
259
+ if (
260
+ callExpressionArg.type !== 'StringLiteral' &&
261
+ callExpressionArg.type !== 'Literal'
262
+ ) {
263
+ const type = callExpressionArg.type;
264
+ throw new IncorrectModuleRegistryCallArgumentTypeParserError(
265
+ nativeModuleName,
266
+ callExpressionArg,
267
+ methodName,
268
+ type,
269
+ );
270
+ }
271
+ }
272
+ function throwIfPartialNotAnnotatingTypeParameter(
273
+ typeAnnotation,
274
+ types,
275
+ parser,
276
+ ) {
277
+ const annotatedElement = parser.extractAnnotatedElement(
278
+ typeAnnotation,
279
+ types,
280
+ );
281
+ if (!annotatedElement) {
282
+ throw new Error('Partials only support annotating a type parameter.');
283
+ }
284
+ }
285
+ function throwIfPartialWithMoreParameter(typeAnnotation) {
286
+ if (typeAnnotation.typeParameters.params.length !== 1) {
287
+ throw new Error('Partials only support annotating exactly one parameter.');
288
+ }
289
+ }
270
290
  module.exports = {
271
291
  throwIfModuleInterfaceIsMisnamed,
272
292
  throwIfUnsupportedFunctionReturnTypeAnnotationParserError,
@@ -281,4 +301,7 @@ module.exports = {
281
301
  throwIfMoreThanOneModuleInterfaceParserError,
282
302
  throwIfUnsupportedFunctionParamTypeAnnotationParserError,
283
303
  throwIfArrayElementTypeAnnotationIsUnsupported,
304
+ throwIfIncorrectModuleRegistryCallArgument,
305
+ throwIfPartialNotAnnotatingTypeParameter,
306
+ throwIfPartialWithMoreParameter,
284
307
  };
@@ -13,6 +13,7 @@
13
13
  import type {NativeModuleTypeAnnotation} from '../CodegenSchema';
14
14
  import type {ParserType} from './errors';
15
15
  import type {Parser} from './parser';
16
+ import type {TypeDeclarationMap} from '../parsers/utils';
16
17
 
17
18
  const {
18
19
  MisnamedModuleInterfaceParserError,
@@ -22,6 +23,7 @@ const {
22
23
  UnusedModuleInterfaceParserError,
23
24
  IncorrectModuleRegistryCallArityParserError,
24
25
  IncorrectModuleRegistryCallTypeParameterParserError,
26
+ IncorrectModuleRegistryCallArgumentTypeParserError,
25
27
  UnsupportedObjectPropertyValueTypeAnnotationParserError,
26
28
  UntypedModuleRegistryCallParserError,
27
29
  UnsupportedModulePropertyParserError,
@@ -63,14 +65,12 @@ function throwIfMoreThanOneModuleRegistryCalls(
63
65
  hasteModuleName: string,
64
66
  callExpressions: $FlowFixMe,
65
67
  callExpressionsLength: number,
66
- language: ParserType,
67
68
  ) {
68
69
  if (callExpressions.length > 1) {
69
70
  throw new MoreThanOneModuleRegistryCallsParserError(
70
71
  hasteModuleName,
71
72
  callExpressions,
72
73
  callExpressionsLength,
73
- language,
74
74
  );
75
75
  }
76
76
  }
@@ -79,14 +79,9 @@ function throwIfUnusedModuleInterfaceParserError(
79
79
  nativeModuleName: string,
80
80
  moduleSpec: $FlowFixMe,
81
81
  callExpressions: $FlowFixMe,
82
- language: ParserType,
83
82
  ) {
84
83
  if (callExpressions.length === 0) {
85
- throw new UnusedModuleInterfaceParserError(
86
- nativeModuleName,
87
- moduleSpec,
88
- language,
89
- );
84
+ throw new UnusedModuleInterfaceParserError(nativeModuleName, moduleSpec);
90
85
  }
91
86
  }
92
87
 
@@ -95,7 +90,6 @@ function throwIfWrongNumberOfCallExpressionArgs(
95
90
  flowCallExpression: $FlowFixMe,
96
91
  methodName: string,
97
92
  numberOfCallExpressionArgs: number,
98
- language: ParserType,
99
93
  ) {
100
94
  if (numberOfCallExpressionArgs !== 1) {
101
95
  throw new IncorrectModuleRegistryCallArityParserError(
@@ -103,7 +97,6 @@ function throwIfWrongNumberOfCallExpressionArgs(
103
97
  flowCallExpression,
104
98
  methodName,
105
99
  numberOfCallExpressionArgs,
106
- language,
107
100
  );
108
101
  }
109
102
  }
@@ -121,7 +114,6 @@ function throwIfIncorrectModuleRegistryCallTypeParameterParserError(
121
114
  typeArguments,
122
115
  methodName,
123
116
  moduleName,
124
- parser.language(),
125
117
  );
126
118
  }
127
119
 
@@ -134,7 +126,6 @@ function throwIfUnsupportedFunctionReturnTypeAnnotationParserError(
134
126
  nativeModuleName: string,
135
127
  returnTypeAnnotation: $FlowFixMe,
136
128
  invalidReturnType: string,
137
- language: ParserType,
138
129
  cxxOnly: boolean,
139
130
  returnType: string,
140
131
  ) {
@@ -143,7 +134,6 @@ function throwIfUnsupportedFunctionReturnTypeAnnotationParserError(
143
134
  nativeModuleName,
144
135
  returnTypeAnnotation.returnType,
145
136
  'FunctionTypeAnnotation',
146
- language,
147
137
  );
148
138
  }
149
139
  }
@@ -154,7 +144,6 @@ function throwIfUntypedModule(
154
144
  callExpression: $FlowFixMe,
155
145
  methodName: string,
156
146
  moduleName: string,
157
- language: ParserType,
158
147
  ) {
159
148
  if (typeArguments == null) {
160
149
  throw new UntypedModuleRegistryCallParserError(
@@ -162,7 +151,6 @@ function throwIfUntypedModule(
162
151
  callExpression,
163
152
  methodName,
164
153
  moduleName,
165
- language,
166
154
  );
167
155
  }
168
156
  }
@@ -208,7 +196,6 @@ function throwIfPropertyValueTypeIsUnsupported(
208
196
  propertyValue: $FlowFixMe,
209
197
  propertyKey: string,
210
198
  type: string,
211
- language: ParserType,
212
199
  ) {
213
200
  const invalidPropertyValueType =
214
201
  UnsupportedObjectPropertyTypeToInvalidPropertyValueTypeMap[type];
@@ -218,7 +205,6 @@ function throwIfPropertyValueTypeIsUnsupported(
218
205
  propertyValue,
219
206
  propertyKey,
220
207
  invalidPropertyValueType,
221
- language,
222
208
  );
223
209
  }
224
210
 
@@ -256,7 +242,6 @@ function throwIfArrayElementTypeAnnotationIsUnsupported(
256
242
  flowElementType: $FlowFixMe,
257
243
  flowArrayType: 'Array' | '$ReadOnlyArray' | 'ReadonlyArray',
258
244
  type: string,
259
- language: ParserType,
260
245
  ) {
261
246
  const TypeMap = {
262
247
  FunctionTypeAnnotation: 'FunctionTypeAnnotation',
@@ -273,11 +258,50 @@ function throwIfArrayElementTypeAnnotationIsUnsupported(
273
258
  flowElementType,
274
259
  flowArrayType,
275
260
  TypeMap[type],
276
- language,
277
261
  );
278
262
  }
279
263
  }
280
264
 
265
+ function throwIfIncorrectModuleRegistryCallArgument(
266
+ nativeModuleName: string,
267
+ callExpressionArg: $FlowFixMe,
268
+ methodName: string,
269
+ ) {
270
+ if (
271
+ callExpressionArg.type !== 'StringLiteral' &&
272
+ callExpressionArg.type !== 'Literal'
273
+ ) {
274
+ const {type} = callExpressionArg;
275
+ throw new IncorrectModuleRegistryCallArgumentTypeParserError(
276
+ nativeModuleName,
277
+ callExpressionArg,
278
+ methodName,
279
+ type,
280
+ );
281
+ }
282
+ }
283
+
284
+ function throwIfPartialNotAnnotatingTypeParameter(
285
+ typeAnnotation: $FlowFixMe,
286
+ types: TypeDeclarationMap,
287
+ parser: Parser,
288
+ ) {
289
+ const annotatedElement = parser.extractAnnotatedElement(
290
+ typeAnnotation,
291
+ types,
292
+ );
293
+
294
+ if (!annotatedElement) {
295
+ throw new Error('Partials only support annotating a type parameter.');
296
+ }
297
+ }
298
+
299
+ function throwIfPartialWithMoreParameter(typeAnnotation: $FlowFixMe) {
300
+ if (typeAnnotation.typeParameters.params.length !== 1) {
301
+ throw new Error('Partials only support annotating exactly one parameter.');
302
+ }
303
+ }
304
+
281
305
  module.exports = {
282
306
  throwIfModuleInterfaceIsMisnamed,
283
307
  throwIfUnsupportedFunctionReturnTypeAnnotationParserError,
@@ -292,4 +316,7 @@ module.exports = {
292
316
  throwIfMoreThanOneModuleInterfaceParserError,
293
317
  throwIfUnsupportedFunctionParamTypeAnnotationParserError,
294
318
  throwIfArrayElementTypeAnnotationIsUnsupported,
319
+ throwIfIncorrectModuleRegistryCallArgument,
320
+ throwIfPartialNotAnnotatingTypeParameter,
321
+ throwIfPartialWithMoreParameter,
295
322
  };
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
3
+ *
4
+ * This source code is licensed under the MIT license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ */
7
+
8
+ export type ParserType = 'Flow' | 'TypeScript';
9
+
10
+ export declare class ParserError extends Error {}
@@ -132,7 +132,6 @@ class UnsupportedArrayElementTypeAnnotationParserError extends ParserError {
132
132
  arrayElementTypeAST,
133
133
  arrayType,
134
134
  invalidArrayElementType,
135
- language,
136
135
  ) {
137
136
  super(
138
137
  nativeModuleName,
@@ -164,7 +163,6 @@ class UnsupportedObjectPropertyValueTypeAnnotationParserError extends ParserErro
164
163
  propertyValueAST,
165
164
  propertyName,
166
165
  invalidPropertyValueType,
167
- language,
168
166
  ) {
169
167
  super(
170
168
  nativeModuleName,
@@ -179,7 +177,7 @@ class UnsupportedObjectPropertyValueTypeAnnotationParserError extends ParserErro
179
177
  */
180
178
 
181
179
  class UnnamedFunctionParamParserError extends ParserError {
182
- constructor(functionParam, nativeModuleName, language) {
180
+ constructor(functionParam, nativeModuleName) {
183
181
  super(
184
182
  nativeModuleName,
185
183
  functionParam,
@@ -202,12 +200,7 @@ class UnsupportedFunctionParamTypeAnnotationParserError extends ParserError {
202
200
  }
203
201
  }
204
202
  class UnsupportedFunctionReturnTypeAnnotationParserError extends ParserError {
205
- constructor(
206
- nativeModuleName,
207
- flowReturnTypeAnnotation,
208
- invalidReturnType,
209
- language,
210
- ) {
203
+ constructor(nativeModuleName, flowReturnTypeAnnotation, invalidReturnType) {
211
204
  super(
212
205
  nativeModuleName,
213
206
  flowReturnTypeAnnotation,
@@ -221,7 +214,7 @@ class UnsupportedFunctionReturnTypeAnnotationParserError extends ParserError {
221
214
  */
222
215
 
223
216
  class UnsupportedEnumDeclarationParserError extends ParserError {
224
- constructor(nativeModuleName, arrayElementTypeAST, memberType, language) {
217
+ constructor(nativeModuleName, arrayElementTypeAST, memberType) {
225
218
  super(
226
219
  nativeModuleName,
227
220
  arrayElementTypeAST,
@@ -235,7 +228,7 @@ class UnsupportedEnumDeclarationParserError extends ParserError {
235
228
  */
236
229
 
237
230
  class UnsupportedUnionTypeAnnotationParserError extends ParserError {
238
- constructor(nativeModuleName, arrayElementTypeAST, types, language) {
231
+ constructor(nativeModuleName, arrayElementTypeAST, types) {
239
232
  super(
240
233
  nativeModuleName,
241
234
  arrayElementTypeAST,
@@ -251,7 +244,7 @@ class UnsupportedUnionTypeAnnotationParserError extends ParserError {
251
244
  */
252
245
 
253
246
  class UnusedModuleInterfaceParserError extends ParserError {
254
- constructor(nativeModuleName, flowInterface, language) {
247
+ constructor(nativeModuleName, flowInterface) {
255
248
  super(
256
249
  nativeModuleName,
257
250
  flowInterface,
@@ -260,7 +253,7 @@ class UnusedModuleInterfaceParserError extends ParserError {
260
253
  }
261
254
  }
262
255
  class MoreThanOneModuleRegistryCallsParserError extends ParserError {
263
- constructor(nativeModuleName, flowCallExpressions, numCalls, language) {
256
+ constructor(nativeModuleName, flowCallExpressions, numCalls) {
264
257
  super(
265
258
  nativeModuleName,
266
259
  flowCallExpressions,
@@ -269,13 +262,7 @@ class MoreThanOneModuleRegistryCallsParserError extends ParserError {
269
262
  }
270
263
  }
271
264
  class UntypedModuleRegistryCallParserError extends ParserError {
272
- constructor(
273
- nativeModuleName,
274
- flowCallExpression,
275
- methodName,
276
- moduleName,
277
- language,
278
- ) {
265
+ constructor(nativeModuleName, flowCallExpression, methodName, moduleName) {
279
266
  super(
280
267
  nativeModuleName,
281
268
  flowCallExpression,
@@ -284,13 +271,7 @@ class UntypedModuleRegistryCallParserError extends ParserError {
284
271
  }
285
272
  }
286
273
  class IncorrectModuleRegistryCallTypeParameterParserError extends ParserError {
287
- constructor(
288
- nativeModuleName,
289
- flowTypeArguments,
290
- methodName,
291
- moduleName,
292
- language,
293
- ) {
274
+ constructor(nativeModuleName, flowTypeArguments, methodName, moduleName) {
294
275
  super(
295
276
  nativeModuleName,
296
277
  flowTypeArguments,
@@ -304,7 +285,6 @@ class IncorrectModuleRegistryCallArityParserError extends ParserError {
304
285
  flowCallExpression,
305
286
  methodName,
306
287
  incorrectArity,
307
- language,
308
288
  ) {
309
289
  super(
310
290
  nativeModuleName,
@@ -314,7 +294,7 @@ class IncorrectModuleRegistryCallArityParserError extends ParserError {
314
294
  }
315
295
  }
316
296
  class IncorrectModuleRegistryCallArgumentTypeParserError extends ParserError {
317
- constructor(nativeModuleName, flowArgument, methodName, type, language) {
297
+ constructor(nativeModuleName, flowArgument, methodName, type) {
318
298
  const a = /[aeiouy]/.test(type.toLowerCase()) ? 'an' : 'a';
319
299
  super(
320
300
  nativeModuleName,
@@ -176,7 +176,6 @@ class UnsupportedArrayElementTypeAnnotationParserError extends ParserError {
176
176
  arrayElementTypeAST: $FlowFixMe,
177
177
  arrayType: 'Array' | '$ReadOnlyArray' | 'ReadonlyArray',
178
178
  invalidArrayElementType: string,
179
- language: ParserType,
180
179
  ) {
181
180
  super(
182
181
  nativeModuleName,
@@ -216,7 +215,6 @@ class UnsupportedObjectPropertyValueTypeAnnotationParserError extends ParserErro
216
215
  propertyValueAST: $FlowFixMe,
217
216
  propertyName: string,
218
217
  invalidPropertyValueType: string,
219
- language: ParserType,
220
218
  ) {
221
219
  super(
222
220
  nativeModuleName,
@@ -231,11 +229,7 @@ class UnsupportedObjectPropertyValueTypeAnnotationParserError extends ParserErro
231
229
  */
232
230
 
233
231
  class UnnamedFunctionParamParserError extends ParserError {
234
- constructor(
235
- functionParam: $FlowFixMe,
236
- nativeModuleName: string,
237
- language: ParserType,
238
- ) {
232
+ constructor(functionParam: $FlowFixMe, nativeModuleName: string) {
239
233
  super(
240
234
  nativeModuleName,
241
235
  functionParam,
@@ -264,7 +258,6 @@ class UnsupportedFunctionReturnTypeAnnotationParserError extends ParserError {
264
258
  nativeModuleName: string,
265
259
  flowReturnTypeAnnotation: $FlowFixMe,
266
260
  invalidReturnType: string,
267
- language: ParserType,
268
261
  ) {
269
262
  super(
270
263
  nativeModuleName,
@@ -283,7 +276,6 @@ class UnsupportedEnumDeclarationParserError extends ParserError {
283
276
  nativeModuleName: string,
284
277
  arrayElementTypeAST: $FlowFixMe,
285
278
  memberType: string,
286
- language: ParserType,
287
279
  ) {
288
280
  super(
289
281
  nativeModuleName,
@@ -302,7 +294,6 @@ class UnsupportedUnionTypeAnnotationParserError extends ParserError {
302
294
  nativeModuleName: string,
303
295
  arrayElementTypeAST: $FlowFixMe,
304
296
  types: UnionTypeAnnotationMemberType[],
305
- language: ParserType,
306
297
  ) {
307
298
  super(
308
299
  nativeModuleName,
@@ -319,11 +310,7 @@ class UnsupportedUnionTypeAnnotationParserError extends ParserError {
319
310
  */
320
311
 
321
312
  class UnusedModuleInterfaceParserError extends ParserError {
322
- constructor(
323
- nativeModuleName: string,
324
- flowInterface: $FlowFixMe,
325
- language: ParserType,
326
- ) {
313
+ constructor(nativeModuleName: string, flowInterface: $FlowFixMe) {
327
314
  super(
328
315
  nativeModuleName,
329
316
  flowInterface,
@@ -337,7 +324,6 @@ class MoreThanOneModuleRegistryCallsParserError extends ParserError {
337
324
  nativeModuleName: string,
338
325
  flowCallExpressions: $FlowFixMe,
339
326
  numCalls: number,
340
- language: ParserType,
341
327
  ) {
342
328
  super(
343
329
  nativeModuleName,
@@ -353,7 +339,6 @@ class UntypedModuleRegistryCallParserError extends ParserError {
353
339
  flowCallExpression: $FlowFixMe,
354
340
  methodName: string,
355
341
  moduleName: string,
356
- language: ParserType,
357
342
  ) {
358
343
  super(
359
344
  nativeModuleName,
@@ -369,7 +354,6 @@ class IncorrectModuleRegistryCallTypeParameterParserError extends ParserError {
369
354
  flowTypeArguments: $FlowFixMe,
370
355
  methodName: string,
371
356
  moduleName: string,
372
- language: ParserType,
373
357
  ) {
374
358
  super(
375
359
  nativeModuleName,
@@ -385,7 +369,6 @@ class IncorrectModuleRegistryCallArityParserError extends ParserError {
385
369
  flowCallExpression: $FlowFixMe,
386
370
  methodName: string,
387
371
  incorrectArity: number,
388
- language: ParserType,
389
372
  ) {
390
373
  super(
391
374
  nativeModuleName,
@@ -401,7 +384,6 @@ class IncorrectModuleRegistryCallArgumentTypeParserError extends ParserError {
401
384
  flowArgument: $FlowFixMe,
402
385
  methodName: string,
403
386
  type: string,
404
- language: ParserType,
405
387
  ) {
406
388
  const a = /[aeiouy]/.test(type.toLowerCase()) ? 'an' : 'a';
407
389
  super(
@@ -0,0 +1,37 @@
1
+ /**
2
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
3
+ *
4
+ * This source code is licensed under the MIT license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ *
7
+ *
8
+ * @format
9
+ */
10
+
11
+ 'use strict';
12
+
13
+ const _require = require('../utils'),
14
+ isModuleRegistryCall = _require.isModuleRegistryCall;
15
+ function Visitor(infoMap) {
16
+ return {
17
+ CallExpression(node) {
18
+ if (
19
+ node.callee.type === 'Identifier' &&
20
+ node.callee.name === 'codegenNativeComponent'
21
+ ) {
22
+ infoMap.isComponent = true;
23
+ }
24
+ if (isModuleRegistryCall(node)) {
25
+ infoMap.isModule = true;
26
+ }
27
+ },
28
+ InterfaceExtends(node) {
29
+ if (node.id.name === 'TurboModule') {
30
+ infoMap.isModule = true;
31
+ }
32
+ },
33
+ };
34
+ }
35
+ module.exports = {
36
+ Visitor,
37
+ };
@@ -0,0 +1,41 @@
1
+ /**
2
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
3
+ *
4
+ * This source code is licensed under the MIT license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ *
7
+ * @flow strict
8
+ * @format
9
+ */
10
+
11
+ 'use strict';
12
+
13
+ const {isModuleRegistryCall} = require('../utils');
14
+
15
+ function Visitor(infoMap: {isComponent: boolean, isModule: boolean}): {
16
+ [type: string]: (node: $FlowFixMe) => void,
17
+ } {
18
+ return {
19
+ CallExpression(node: $FlowFixMe) {
20
+ if (
21
+ node.callee.type === 'Identifier' &&
22
+ node.callee.name === 'codegenNativeComponent'
23
+ ) {
24
+ infoMap.isComponent = true;
25
+ }
26
+
27
+ if (isModuleRegistryCall(node)) {
28
+ infoMap.isModule = true;
29
+ }
30
+ },
31
+ InterfaceExtends(node: $FlowFixMe) {
32
+ if (node.id.name === 'TurboModule') {
33
+ infoMap.isModule = true;
34
+ }
35
+ },
36
+ };
37
+ }
38
+
39
+ module.exports = {
40
+ Visitor,
41
+ };