@react-native/codegen 0.72.1

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 (186) hide show
  1. package/README.md +21 -0
  2. package/lib/CodegenSchema.js +11 -0
  3. package/lib/CodegenSchema.js.flow +351 -0
  4. package/lib/SchemaValidator.js +54 -0
  5. package/lib/SchemaValidator.js.flow +67 -0
  6. package/lib/cli/combine/combine-js-to-schema-cli.js +50 -0
  7. package/lib/cli/combine/combine-js-to-schema-cli.js.flow +49 -0
  8. package/lib/cli/combine/combine-js-to-schema.js +110 -0
  9. package/lib/cli/combine/combine-js-to-schema.js.flow +48 -0
  10. package/lib/cli/combine/combine-utils.js +118 -0
  11. package/lib/cli/combine/combine-utils.js.flow +85 -0
  12. package/lib/cli/generators/generate-all.js +65 -0
  13. package/lib/cli/generators/generate-all.js.flow +66 -0
  14. package/lib/cli/parser/parser-cli.js +55 -0
  15. package/lib/cli/parser/parser-cli.js.flow +18 -0
  16. package/lib/cli/parser/parser.js +35 -0
  17. package/lib/cli/parser/parser.js.flow +37 -0
  18. package/lib/cli/parser/parser.sh +15 -0
  19. package/lib/generators/RNCodegen.js +207 -0
  20. package/lib/generators/RNCodegen.js.flow +284 -0
  21. package/lib/generators/Utils.js +31 -0
  22. package/lib/generators/Utils.js.flow +33 -0
  23. package/lib/generators/__test_fixtures__/fixtures.js +79 -0
  24. package/lib/generators/__test_fixtures__/fixtures.js.flow +82 -0
  25. package/lib/generators/components/ComponentsGeneratorUtils.js +217 -0
  26. package/lib/generators/components/ComponentsGeneratorUtils.js.flow +304 -0
  27. package/lib/generators/components/CppHelpers.js +188 -0
  28. package/lib/generators/components/CppHelpers.js.flow +228 -0
  29. package/lib/generators/components/GenerateComponentDescriptorH.js +75 -0
  30. package/lib/generators/components/GenerateComponentDescriptorH.js.flow +95 -0
  31. package/lib/generators/components/GenerateComponentHObjCpp.js +327 -0
  32. package/lib/generators/components/GenerateComponentHObjCpp.js.flow +418 -0
  33. package/lib/generators/components/GenerateEventEmitterCpp.js +199 -0
  34. package/lib/generators/components/GenerateEventEmitterCpp.js.flow +273 -0
  35. package/lib/generators/components/GenerateEventEmitterH.js +224 -0
  36. package/lib/generators/components/GenerateEventEmitterH.js.flow +315 -0
  37. package/lib/generators/components/GeneratePropsCpp.js +126 -0
  38. package/lib/generators/components/GeneratePropsCpp.js.flow +161 -0
  39. package/lib/generators/components/GeneratePropsH.js +606 -0
  40. package/lib/generators/components/GeneratePropsH.js.flow +778 -0
  41. package/lib/generators/components/GeneratePropsJavaDelegate.js +287 -0
  42. package/lib/generators/components/GeneratePropsJavaDelegate.js.flow +348 -0
  43. package/lib/generators/components/GeneratePropsJavaInterface.js +237 -0
  44. package/lib/generators/components/GeneratePropsJavaInterface.js.flow +288 -0
  45. package/lib/generators/components/GeneratePropsJavaPojo/PojoCollector.js +157 -0
  46. package/lib/generators/components/GeneratePropsJavaPojo/PojoCollector.js.flow +187 -0
  47. package/lib/generators/components/GeneratePropsJavaPojo/index.js +66 -0
  48. package/lib/generators/components/GeneratePropsJavaPojo/index.js.flow +80 -0
  49. package/lib/generators/components/GeneratePropsJavaPojo/serializePojo.js +273 -0
  50. package/lib/generators/components/GeneratePropsJavaPojo/serializePojo.js.flow +296 -0
  51. package/lib/generators/components/GenerateShadowNodeCpp.js +73 -0
  52. package/lib/generators/components/GenerateShadowNodeCpp.js.flow +95 -0
  53. package/lib/generators/components/GenerateShadowNodeH.js +91 -0
  54. package/lib/generators/components/GenerateShadowNodeH.js.flow +124 -0
  55. package/lib/generators/components/GenerateStateCpp.js +70 -0
  56. package/lib/generators/components/GenerateStateCpp.js.flow +92 -0
  57. package/lib/generators/components/GenerateStateH.js +93 -0
  58. package/lib/generators/components/GenerateStateH.js.flow +111 -0
  59. package/lib/generators/components/GenerateTests.js +165 -0
  60. package/lib/generators/components/GenerateTests.js.flow +219 -0
  61. package/lib/generators/components/GenerateThirdPartyFabricComponentsProviderH.js +91 -0
  62. package/lib/generators/components/GenerateThirdPartyFabricComponentsProviderH.js.flow +107 -0
  63. package/lib/generators/components/GenerateThirdPartyFabricComponentsProviderObjCpp.js +89 -0
  64. package/lib/generators/components/GenerateThirdPartyFabricComponentsProviderObjCpp.js.flow +105 -0
  65. package/lib/generators/components/GenerateViewConfigJs.js +410 -0
  66. package/lib/generators/components/GenerateViewConfigJs.js.flow +484 -0
  67. package/lib/generators/components/JavaHelpers.js +87 -0
  68. package/lib/generators/components/JavaHelpers.js.flow +119 -0
  69. package/lib/generators/components/__test_fixtures__/fixtures.js +1641 -0
  70. package/lib/generators/components/__test_fixtures__/fixtures.js.flow +1672 -0
  71. package/lib/generators/modules/GenerateModuleCpp.js +299 -0
  72. package/lib/generators/modules/GenerateModuleCpp.js.flow +278 -0
  73. package/lib/generators/modules/GenerateModuleH.js +373 -0
  74. package/lib/generators/modules/GenerateModuleH.js.flow +355 -0
  75. package/lib/generators/modules/GenerateModuleJavaSpec.js +571 -0
  76. package/lib/generators/modules/GenerateModuleJavaSpec.js.flow +553 -0
  77. package/lib/generators/modules/GenerateModuleJniCpp.js +505 -0
  78. package/lib/generators/modules/GenerateModuleJniCpp.js.flow +523 -0
  79. package/lib/generators/modules/GenerateModuleJniH.js +138 -0
  80. package/lib/generators/modules/GenerateModuleJniH.js.flow +148 -0
  81. package/lib/generators/modules/GenerateModuleObjCpp/StructCollector.js +262 -0
  82. package/lib/generators/modules/GenerateModuleObjCpp/StructCollector.js.flow +208 -0
  83. package/lib/generators/modules/GenerateModuleObjCpp/Utils.js +25 -0
  84. package/lib/generators/modules/GenerateModuleObjCpp/Utils.js.flow +32 -0
  85. package/lib/generators/modules/GenerateModuleObjCpp/header/serializeConstantsStruct.js +337 -0
  86. package/lib/generators/modules/GenerateModuleObjCpp/header/serializeConstantsStruct.js.flow +288 -0
  87. package/lib/generators/modules/GenerateModuleObjCpp/header/serializeRegularStruct.js +330 -0
  88. package/lib/generators/modules/GenerateModuleObjCpp/header/serializeRegularStruct.js.flow +279 -0
  89. package/lib/generators/modules/GenerateModuleObjCpp/header/serializeStruct.js +25 -0
  90. package/lib/generators/modules/GenerateModuleObjCpp/header/serializeStruct.js.flow +35 -0
  91. package/lib/generators/modules/GenerateModuleObjCpp/index.js +185 -0
  92. package/lib/generators/modules/GenerateModuleObjCpp/index.js.flow +219 -0
  93. package/lib/generators/modules/GenerateModuleObjCpp/serializeMethod.js +529 -0
  94. package/lib/generators/modules/GenerateModuleObjCpp/serializeMethod.js.flow +510 -0
  95. package/lib/generators/modules/GenerateModuleObjCpp/source/serializeModule.js +96 -0
  96. package/lib/generators/modules/GenerateModuleObjCpp/source/serializeModule.js.flow +121 -0
  97. package/lib/generators/modules/Utils.js +34 -0
  98. package/lib/generators/modules/Utils.js.flow +53 -0
  99. package/lib/generators/modules/__test_fixtures__/fixtures.js +1658 -0
  100. package/lib/generators/modules/__test_fixtures__/fixtures.js.flow +1669 -0
  101. package/lib/parsers/consistency/compareSnaps.js +84 -0
  102. package/lib/parsers/error-utils.js +284 -0
  103. package/lib/parsers/error-utils.js.flow +295 -0
  104. package/lib/parsers/errors.js +350 -0
  105. package/lib/parsers/errors.js.flow +439 -0
  106. package/lib/parsers/flow/components/__test_fixtures__/failures.js +583 -0
  107. package/lib/parsers/flow/components/__test_fixtures__/failures.js.flow +600 -0
  108. package/lib/parsers/flow/components/__test_fixtures__/fixtures.js +1001 -0
  109. package/lib/parsers/flow/components/__test_fixtures__/fixtures.js.flow +1016 -0
  110. package/lib/parsers/flow/components/commands.js +104 -0
  111. package/lib/parsers/flow/components/commands.js.flow +123 -0
  112. package/lib/parsers/flow/components/componentsUtils.js +446 -0
  113. package/lib/parsers/flow/components/componentsUtils.js.flow +496 -0
  114. package/lib/parsers/flow/components/events.js +233 -0
  115. package/lib/parsers/flow/components/events.js.flow +262 -0
  116. package/lib/parsers/flow/components/extends.js +52 -0
  117. package/lib/parsers/flow/components/extends.js.flow +66 -0
  118. package/lib/parsers/flow/components/index.js +267 -0
  119. package/lib/parsers/flow/components/index.js.flow +226 -0
  120. package/lib/parsers/flow/components/options.js +72 -0
  121. package/lib/parsers/flow/components/options.js.flow +87 -0
  122. package/lib/parsers/flow/components/props.js +47 -0
  123. package/lib/parsers/flow/components/props.js.flow +60 -0
  124. package/lib/parsers/flow/components/schema.js +106 -0
  125. package/lib/parsers/flow/components/schema.js.flow +62 -0
  126. package/lib/parsers/flow/index.js +80 -0
  127. package/lib/parsers/flow/index.js.flow +85 -0
  128. package/lib/parsers/flow/modules/__test_fixtures__/failures.js +215 -0
  129. package/lib/parsers/flow/modules/__test_fixtures__/failures.js.flow +223 -0
  130. package/lib/parsers/flow/modules/__test_fixtures__/fixtures.js +724 -0
  131. package/lib/parsers/flow/modules/__test_fixtures__/fixtures.js.flow +747 -0
  132. package/lib/parsers/flow/modules/index.js +528 -0
  133. package/lib/parsers/flow/modules/index.js.flow +420 -0
  134. package/lib/parsers/flow/parser.js +109 -0
  135. package/lib/parsers/flow/parser.js.flow +83 -0
  136. package/lib/parsers/flow/utils.js +108 -0
  137. package/lib/parsers/flow/utils.js.flow +123 -0
  138. package/lib/parsers/parser.js +11 -0
  139. package/lib/parsers/parser.js.flow +70 -0
  140. package/lib/parsers/parserMock.js +96 -0
  141. package/lib/parsers/parserMock.js.flow +68 -0
  142. package/lib/parsers/parsers-commons.js +448 -0
  143. package/lib/parsers/parsers-commons.js.flow +447 -0
  144. package/lib/parsers/parsers-primitives.js +387 -0
  145. package/lib/parsers/parsers-primitives.js.flow +383 -0
  146. package/lib/parsers/parsers-utils.js +18 -0
  147. package/lib/parsers/parsers-utils.js.flow +19 -0
  148. package/lib/parsers/schema/index.js +23 -0
  149. package/lib/parsers/schema/index.js.flow +26 -0
  150. package/lib/parsers/typescript/components/__test_fixtures__/failures.js +489 -0
  151. package/lib/parsers/typescript/components/__test_fixtures__/failures.js.flow +505 -0
  152. package/lib/parsers/typescript/components/__test_fixtures__/fixtures.js +1151 -0
  153. package/lib/parsers/typescript/components/__test_fixtures__/fixtures.js.flow +1168 -0
  154. package/lib/parsers/typescript/components/commands.js +132 -0
  155. package/lib/parsers/typescript/components/commands.js.flow +151 -0
  156. package/lib/parsers/typescript/components/componentsUtils.js +471 -0
  157. package/lib/parsers/typescript/components/componentsUtils.js.flow +521 -0
  158. package/lib/parsers/typescript/components/events.js +240 -0
  159. package/lib/parsers/typescript/components/events.js.flow +262 -0
  160. package/lib/parsers/typescript/components/extends.js +88 -0
  161. package/lib/parsers/typescript/components/extends.js.flow +103 -0
  162. package/lib/parsers/typescript/components/index.js +277 -0
  163. package/lib/parsers/typescript/components/index.js.flow +239 -0
  164. package/lib/parsers/typescript/components/options.js +72 -0
  165. package/lib/parsers/typescript/components/options.js.flow +87 -0
  166. package/lib/parsers/typescript/components/props.js +39 -0
  167. package/lib/parsers/typescript/components/props.js.flow +48 -0
  168. package/lib/parsers/typescript/components/schema.js +106 -0
  169. package/lib/parsers/typescript/components/schema.js.flow +62 -0
  170. package/lib/parsers/typescript/index.js +85 -0
  171. package/lib/parsers/typescript/index.js.flow +94 -0
  172. package/lib/parsers/typescript/modules/__test_fixtures__/failures.js +160 -0
  173. package/lib/parsers/typescript/modules/__test_fixtures__/failures.js.flow +167 -0
  174. package/lib/parsers/typescript/modules/__test_fixtures__/fixtures.js +701 -0
  175. package/lib/parsers/typescript/modules/__test_fixtures__/fixtures.js.flow +727 -0
  176. package/lib/parsers/typescript/modules/index.js +543 -0
  177. package/lib/parsers/typescript/modules/index.js.flow +435 -0
  178. package/lib/parsers/typescript/parseTopLevelType.js +203 -0
  179. package/lib/parsers/typescript/parseTopLevelType.js.flow +243 -0
  180. package/lib/parsers/typescript/parser.js +105 -0
  181. package/lib/parsers/typescript/parser.js.flow +87 -0
  182. package/lib/parsers/typescript/utils.js +101 -0
  183. package/lib/parsers/typescript/utils.js.flow +115 -0
  184. package/lib/parsers/utils.js +273 -0
  185. package/lib/parsers/utils.js.flow +266 -0
  186. package/package.json +45 -0
@@ -0,0 +1,1658 @@
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 EMPTY_NATIVE_MODULES = {
14
+ modules: {
15
+ NativeSampleTurboModule: {
16
+ type: 'NativeModule',
17
+ aliases: {},
18
+ spec: {
19
+ properties: [],
20
+ },
21
+ moduleName: 'SampleTurboModule',
22
+ },
23
+ },
24
+ };
25
+ const SIMPLE_NATIVE_MODULES = {
26
+ modules: {
27
+ NativeSampleTurboModule: {
28
+ type: 'NativeModule',
29
+ aliases: {},
30
+ spec: {
31
+ properties: [
32
+ {
33
+ name: 'getConstants',
34
+ optional: false,
35
+ typeAnnotation: {
36
+ type: 'FunctionTypeAnnotation',
37
+ returnTypeAnnotation: {
38
+ type: 'ObjectTypeAnnotation',
39
+ properties: [
40
+ {
41
+ optional: false,
42
+ name: 'const1',
43
+ typeAnnotation: {
44
+ type: 'BooleanTypeAnnotation',
45
+ },
46
+ },
47
+ {
48
+ optional: false,
49
+ name: 'const2',
50
+ typeAnnotation: {
51
+ type: 'NumberTypeAnnotation',
52
+ },
53
+ },
54
+ {
55
+ optional: false,
56
+ name: 'const3',
57
+ typeAnnotation: {
58
+ type: 'StringTypeAnnotation',
59
+ },
60
+ },
61
+ ],
62
+ },
63
+ params: [],
64
+ },
65
+ },
66
+ {
67
+ name: 'voidFunc',
68
+ optional: false,
69
+ typeAnnotation: {
70
+ type: 'FunctionTypeAnnotation',
71
+ returnTypeAnnotation: {
72
+ type: 'VoidTypeAnnotation',
73
+ },
74
+ params: [],
75
+ },
76
+ },
77
+ {
78
+ name: 'getBool',
79
+ optional: false,
80
+ typeAnnotation: {
81
+ type: 'FunctionTypeAnnotation',
82
+ returnTypeAnnotation: {
83
+ type: 'BooleanTypeAnnotation',
84
+ },
85
+ params: [
86
+ {
87
+ optional: false,
88
+ name: 'arg',
89
+ typeAnnotation: {
90
+ type: 'BooleanTypeAnnotation',
91
+ },
92
+ },
93
+ ],
94
+ },
95
+ },
96
+ {
97
+ name: 'getNumber',
98
+ optional: false,
99
+ typeAnnotation: {
100
+ type: 'FunctionTypeAnnotation',
101
+ returnTypeAnnotation: {
102
+ type: 'NumberTypeAnnotation',
103
+ },
104
+ params: [
105
+ {
106
+ optional: false,
107
+ name: 'arg',
108
+ typeAnnotation: {
109
+ type: 'NumberTypeAnnotation',
110
+ },
111
+ },
112
+ ],
113
+ },
114
+ },
115
+ {
116
+ name: 'getString',
117
+ optional: false,
118
+ typeAnnotation: {
119
+ type: 'FunctionTypeAnnotation',
120
+ returnTypeAnnotation: {
121
+ type: 'StringTypeAnnotation',
122
+ },
123
+ params: [
124
+ {
125
+ optional: false,
126
+ name: 'arg',
127
+ typeAnnotation: {
128
+ type: 'StringTypeAnnotation',
129
+ },
130
+ },
131
+ ],
132
+ },
133
+ },
134
+ {
135
+ name: 'getArray',
136
+ optional: false,
137
+ typeAnnotation: {
138
+ type: 'FunctionTypeAnnotation',
139
+ returnTypeAnnotation: {
140
+ type: 'ArrayTypeAnnotation',
141
+ elementType: {
142
+ type: 'GenericObjectTypeAnnotation',
143
+ },
144
+ },
145
+ params: [
146
+ {
147
+ name: 'arg',
148
+ optional: false,
149
+ typeAnnotation: {
150
+ type: 'ArrayTypeAnnotation',
151
+ elementType: {
152
+ type: 'GenericObjectTypeAnnotation',
153
+ },
154
+ },
155
+ },
156
+ ],
157
+ },
158
+ },
159
+ {
160
+ name: 'getObject',
161
+ optional: false,
162
+ typeAnnotation: {
163
+ type: 'FunctionTypeAnnotation',
164
+ returnTypeAnnotation: {
165
+ type: 'GenericObjectTypeAnnotation',
166
+ },
167
+ params: [
168
+ {
169
+ optional: false,
170
+ name: 'arg',
171
+ typeAnnotation: {
172
+ type: 'GenericObjectTypeAnnotation',
173
+ },
174
+ },
175
+ ],
176
+ },
177
+ },
178
+ {
179
+ name: 'getRootTag',
180
+ optional: false,
181
+ typeAnnotation: {
182
+ type: 'FunctionTypeAnnotation',
183
+ returnTypeAnnotation: {
184
+ type: 'ReservedTypeAnnotation',
185
+ name: 'RootTag',
186
+ },
187
+ params: [
188
+ {
189
+ optional: false,
190
+ name: 'arg',
191
+ typeAnnotation: {
192
+ type: 'ReservedTypeAnnotation',
193
+ name: 'RootTag',
194
+ },
195
+ },
196
+ ],
197
+ },
198
+ },
199
+ {
200
+ name: 'getValue',
201
+ optional: false,
202
+ typeAnnotation: {
203
+ type: 'FunctionTypeAnnotation',
204
+ returnTypeAnnotation: {
205
+ type: 'GenericObjectTypeAnnotation',
206
+ },
207
+ params: [
208
+ {
209
+ optional: false,
210
+ name: 'x',
211
+ typeAnnotation: {
212
+ type: 'NumberTypeAnnotation',
213
+ },
214
+ },
215
+ {
216
+ optional: false,
217
+ name: 'y',
218
+ typeAnnotation: {
219
+ type: 'StringTypeAnnotation',
220
+ },
221
+ },
222
+ {
223
+ optional: false,
224
+ name: 'z',
225
+ typeAnnotation: {
226
+ type: 'GenericObjectTypeAnnotation',
227
+ },
228
+ },
229
+ ],
230
+ },
231
+ },
232
+ {
233
+ name: 'getValueWithCallback',
234
+ optional: false,
235
+ typeAnnotation: {
236
+ type: 'FunctionTypeAnnotation',
237
+ returnTypeAnnotation: {
238
+ type: 'VoidTypeAnnotation',
239
+ },
240
+ params: [
241
+ {
242
+ name: 'callback',
243
+ optional: false,
244
+ typeAnnotation: {
245
+ type: 'FunctionTypeAnnotation',
246
+ params: [],
247
+ returnTypeAnnotation: {
248
+ type: 'VoidTypeAnnotation',
249
+ },
250
+ },
251
+ },
252
+ ],
253
+ },
254
+ },
255
+ {
256
+ name: 'getValueWithPromise',
257
+ optional: false,
258
+ typeAnnotation: {
259
+ type: 'FunctionTypeAnnotation',
260
+ returnTypeAnnotation: {
261
+ type: 'PromiseTypeAnnotation',
262
+ },
263
+ params: [
264
+ {
265
+ optional: false,
266
+ name: 'error',
267
+ typeAnnotation: {
268
+ type: 'BooleanTypeAnnotation',
269
+ },
270
+ },
271
+ ],
272
+ },
273
+ },
274
+ {
275
+ name: 'getValueWithOptionalArg',
276
+ optional: false,
277
+ typeAnnotation: {
278
+ type: 'FunctionTypeAnnotation',
279
+ returnTypeAnnotation: {
280
+ type: 'PromiseTypeAnnotation',
281
+ },
282
+ params: [
283
+ {
284
+ optional: true,
285
+ name: 'parameter',
286
+ typeAnnotation: {
287
+ type: 'GenericObjectTypeAnnotation',
288
+ },
289
+ },
290
+ ],
291
+ },
292
+ },
293
+ {
294
+ name: 'getEnums',
295
+ optional: false,
296
+ typeAnnotation: {
297
+ type: 'FunctionTypeAnnotation',
298
+ returnTypeAnnotation: {
299
+ type: 'StringTypeAnnotation',
300
+ },
301
+ params: [
302
+ {
303
+ name: 'enumInt',
304
+ optional: false,
305
+ typeAnnotation: {
306
+ type: 'EnumDeclaration',
307
+ memberType: 'NumberTypeAnnotation',
308
+ },
309
+ },
310
+ {
311
+ name: 'enumFloat',
312
+ optional: false,
313
+ typeAnnotation: {
314
+ type: 'EnumDeclaration',
315
+ memberType: 'NumberTypeAnnotation',
316
+ },
317
+ },
318
+ {
319
+ name: 'enumString',
320
+ optional: false,
321
+ typeAnnotation: {
322
+ type: 'EnumDeclaration',
323
+ memberType: 'StringTypeAnnotation',
324
+ },
325
+ },
326
+ ],
327
+ },
328
+ },
329
+ ],
330
+ },
331
+ moduleName: 'SampleTurboModule',
332
+ },
333
+ },
334
+ };
335
+ const TWO_MODULES_DIFFERENT_FILES = {
336
+ modules: {
337
+ NativeSampleTurboModule: {
338
+ type: 'NativeModule',
339
+ aliases: {},
340
+ spec: {
341
+ properties: [
342
+ {
343
+ name: 'voidFunc',
344
+ optional: false,
345
+ typeAnnotation: {
346
+ type: 'FunctionTypeAnnotation',
347
+ returnTypeAnnotation: {
348
+ type: 'VoidTypeAnnotation',
349
+ },
350
+ params: [],
351
+ },
352
+ },
353
+ ],
354
+ },
355
+ moduleName: 'SampleTurboModule',
356
+ },
357
+ NativeSampleTurboModule2: {
358
+ type: 'NativeModule',
359
+ aliases: {},
360
+ spec: {
361
+ properties: [
362
+ {
363
+ name: 'getConstants',
364
+ optional: false,
365
+ typeAnnotation: {
366
+ type: 'FunctionTypeAnnotation',
367
+ returnTypeAnnotation: {
368
+ type: 'ObjectTypeAnnotation',
369
+ properties: [],
370
+ },
371
+ params: [],
372
+ },
373
+ },
374
+ {
375
+ name: 'voidFunc',
376
+ optional: false,
377
+ typeAnnotation: {
378
+ type: 'FunctionTypeAnnotation',
379
+ returnTypeAnnotation: {
380
+ type: 'VoidTypeAnnotation',
381
+ },
382
+ params: [],
383
+ },
384
+ },
385
+ ],
386
+ },
387
+ moduleName: 'SampleTurboModule2',
388
+ },
389
+ },
390
+ };
391
+ const COMPLEX_OBJECTS = {
392
+ modules: {
393
+ NativeSampleTurboModule: {
394
+ type: 'NativeModule',
395
+ aliases: {},
396
+ spec: {
397
+ properties: [
398
+ {
399
+ name: 'difficult',
400
+ optional: false,
401
+ typeAnnotation: {
402
+ type: 'FunctionTypeAnnotation',
403
+ returnTypeAnnotation: {
404
+ type: 'ObjectTypeAnnotation',
405
+ properties: [
406
+ {
407
+ optional: false,
408
+ name: 'D',
409
+ typeAnnotation: {
410
+ type: 'BooleanTypeAnnotation',
411
+ },
412
+ },
413
+ {
414
+ optional: false,
415
+ name: 'E',
416
+ typeAnnotation: {
417
+ type: 'NumberTypeAnnotation',
418
+ },
419
+ },
420
+ {
421
+ optional: false,
422
+ name: 'F',
423
+ typeAnnotation: {
424
+ type: 'StringTypeAnnotation',
425
+ },
426
+ },
427
+ ],
428
+ },
429
+ params: [
430
+ {
431
+ optional: false,
432
+ name: 'A',
433
+ typeAnnotation: {
434
+ type: 'ObjectTypeAnnotation',
435
+ properties: [
436
+ {
437
+ optional: false,
438
+ name: 'D',
439
+ typeAnnotation: {
440
+ type: 'BooleanTypeAnnotation',
441
+ },
442
+ },
443
+ {
444
+ optional: false,
445
+ name: 'E',
446
+ typeAnnotation: {
447
+ type: 'ObjectTypeAnnotation',
448
+ properties: [
449
+ {
450
+ optional: false,
451
+ name: 'D',
452
+ typeAnnotation: {
453
+ type: 'BooleanTypeAnnotation',
454
+ },
455
+ },
456
+ {
457
+ optional: false,
458
+ name: 'E',
459
+ typeAnnotation: {
460
+ type: 'NumberTypeAnnotation',
461
+ },
462
+ },
463
+ {
464
+ optional: false,
465
+ name: 'F',
466
+ typeAnnotation: {
467
+ type: 'StringTypeAnnotation',
468
+ },
469
+ },
470
+ {
471
+ optional: false,
472
+ name: 'id',
473
+ typeAnnotation: {
474
+ type: 'NumberTypeAnnotation',
475
+ },
476
+ },
477
+ ],
478
+ },
479
+ },
480
+ {
481
+ optional: false,
482
+ name: 'F',
483
+ typeAnnotation: {
484
+ type: 'StringTypeAnnotation',
485
+ },
486
+ },
487
+ ],
488
+ },
489
+ },
490
+ ],
491
+ },
492
+ },
493
+ {
494
+ name: 'optionals',
495
+ optional: false,
496
+ typeAnnotation: {
497
+ type: 'FunctionTypeAnnotation',
498
+ returnTypeAnnotation: {
499
+ type: 'VoidTypeAnnotation',
500
+ },
501
+ params: [
502
+ {
503
+ optional: false,
504
+ name: 'A',
505
+ typeAnnotation: {
506
+ type: 'ObjectTypeAnnotation',
507
+ properties: [
508
+ {
509
+ optional: true,
510
+ name: 'optionalNumberProperty',
511
+ typeAnnotation: {
512
+ type: 'NumberTypeAnnotation',
513
+ },
514
+ },
515
+ {
516
+ optional: true,
517
+ name: 'optionalArrayProperty',
518
+ typeAnnotation: {
519
+ type: 'ArrayTypeAnnotation',
520
+ elementType: {
521
+ type: 'NumberTypeAnnotation',
522
+ },
523
+ },
524
+ },
525
+ {
526
+ optional: true,
527
+ name: 'optionalObjectProperty',
528
+ typeAnnotation: {
529
+ type: 'ObjectTypeAnnotation',
530
+ properties: [
531
+ {
532
+ optional: false,
533
+ name: 'x',
534
+ typeAnnotation: {
535
+ type: 'NumberTypeAnnotation',
536
+ },
537
+ },
538
+ {
539
+ optional: false,
540
+ name: 'y',
541
+ typeAnnotation: {
542
+ type: 'NumberTypeAnnotation',
543
+ },
544
+ },
545
+ ],
546
+ },
547
+ },
548
+ {
549
+ optional: true,
550
+ name: 'optionalGenericObjectProperty',
551
+ typeAnnotation: {
552
+ type: 'GenericObjectTypeAnnotation',
553
+ },
554
+ },
555
+ {
556
+ optional: true,
557
+ name: 'optionalBooleanTypeProperty',
558
+ typeAnnotation: {
559
+ type: 'BooleanTypeAnnotation',
560
+ },
561
+ },
562
+ ],
563
+ },
564
+ },
565
+ ],
566
+ },
567
+ },
568
+ {
569
+ name: 'optionalMethod',
570
+ optional: true,
571
+ typeAnnotation: {
572
+ type: 'NullableTypeAnnotation',
573
+ typeAnnotation: {
574
+ type: 'FunctionTypeAnnotation',
575
+ returnTypeAnnotation: {
576
+ type: 'VoidTypeAnnotation',
577
+ },
578
+ params: [
579
+ {
580
+ optional: false,
581
+ name: 'options',
582
+ typeAnnotation: {
583
+ type: 'GenericObjectTypeAnnotation',
584
+ },
585
+ },
586
+ {
587
+ name: 'callback',
588
+ optional: false,
589
+ typeAnnotation: {
590
+ type: 'FunctionTypeAnnotation',
591
+ params: [],
592
+ returnTypeAnnotation: {
593
+ type: 'VoidTypeAnnotation',
594
+ },
595
+ },
596
+ },
597
+ {
598
+ name: 'extras',
599
+ optional: true,
600
+ typeAnnotation: {
601
+ type: 'ArrayTypeAnnotation',
602
+ elementType: {
603
+ type: 'ObjectTypeAnnotation',
604
+ properties: [
605
+ {
606
+ optional: false,
607
+ name: 'key',
608
+ typeAnnotation: {
609
+ type: 'StringTypeAnnotation',
610
+ },
611
+ },
612
+ {
613
+ optional: false,
614
+ name: 'value',
615
+ typeAnnotation: {
616
+ type: 'GenericObjectTypeAnnotation',
617
+ },
618
+ },
619
+ ],
620
+ },
621
+ },
622
+ },
623
+ ],
624
+ },
625
+ },
626
+ },
627
+ {
628
+ name: 'getArrays',
629
+ optional: false,
630
+ typeAnnotation: {
631
+ type: 'FunctionTypeAnnotation',
632
+ returnTypeAnnotation: {
633
+ type: 'VoidTypeAnnotation',
634
+ },
635
+ params: [
636
+ {
637
+ optional: false,
638
+ name: 'options',
639
+ typeAnnotation: {
640
+ type: 'ObjectTypeAnnotation',
641
+ properties: [
642
+ {
643
+ optional: false,
644
+ name: 'arrayOfNumbers',
645
+ typeAnnotation: {
646
+ type: 'ArrayTypeAnnotation',
647
+ elementType: {
648
+ type: 'NumberTypeAnnotation',
649
+ },
650
+ },
651
+ },
652
+ {
653
+ optional: true,
654
+ name: 'optionalArrayOfNumbers',
655
+ typeAnnotation: {
656
+ type: 'ArrayTypeAnnotation',
657
+ elementType: {
658
+ type: 'NumberTypeAnnotation',
659
+ },
660
+ },
661
+ },
662
+ {
663
+ optional: false,
664
+ name: 'arrayOfStrings',
665
+ typeAnnotation: {
666
+ type: 'ArrayTypeAnnotation',
667
+ elementType: {
668
+ type: 'StringTypeAnnotation',
669
+ },
670
+ },
671
+ },
672
+ {
673
+ optional: true,
674
+ name: 'optionalArrayOfStrings',
675
+ typeAnnotation: {
676
+ type: 'ArrayTypeAnnotation',
677
+ elementType: {
678
+ type: 'StringTypeAnnotation',
679
+ },
680
+ },
681
+ },
682
+ {
683
+ optional: false,
684
+ name: 'arrayOfObjects',
685
+ typeAnnotation: {
686
+ type: 'ArrayTypeAnnotation',
687
+ elementType: {
688
+ type: 'ObjectTypeAnnotation',
689
+ properties: [
690
+ {
691
+ optional: false,
692
+ name: 'numberProperty',
693
+ typeAnnotation: {
694
+ type: 'NumberTypeAnnotation',
695
+ },
696
+ },
697
+ ],
698
+ },
699
+ },
700
+ },
701
+ ],
702
+ },
703
+ },
704
+ ],
705
+ },
706
+ },
707
+ {
708
+ name: 'getNullableObject',
709
+ optional: false,
710
+ typeAnnotation: {
711
+ type: 'FunctionTypeAnnotation',
712
+ returnTypeAnnotation: {
713
+ type: 'NullableTypeAnnotation',
714
+ typeAnnotation: {
715
+ type: 'ObjectTypeAnnotation',
716
+ properties: [],
717
+ },
718
+ },
719
+ params: [],
720
+ },
721
+ },
722
+ {
723
+ name: 'getNullableGenericObject',
724
+ optional: false,
725
+ typeAnnotation: {
726
+ type: 'FunctionTypeAnnotation',
727
+ returnTypeAnnotation: {
728
+ type: 'NullableTypeAnnotation',
729
+ typeAnnotation: {
730
+ type: 'GenericObjectTypeAnnotation',
731
+ },
732
+ },
733
+ params: [],
734
+ },
735
+ },
736
+ {
737
+ name: 'getNullableArray',
738
+ optional: false,
739
+ typeAnnotation: {
740
+ type: 'FunctionTypeAnnotation',
741
+ returnTypeAnnotation: {
742
+ type: 'NullableTypeAnnotation',
743
+ typeAnnotation: {
744
+ type: 'ArrayTypeAnnotation',
745
+ },
746
+ },
747
+ params: [],
748
+ },
749
+ },
750
+ ],
751
+ },
752
+ moduleName: 'SampleTurboModule',
753
+ },
754
+ },
755
+ };
756
+ const NATIVE_MODULES_WITH_TYPE_ALIASES = {
757
+ modules: {
758
+ AliasTurboModule: {
759
+ type: 'NativeModule',
760
+ aliases: {
761
+ Options: {
762
+ type: 'ObjectTypeAnnotation',
763
+ properties: [
764
+ {
765
+ optional: false,
766
+ name: 'offset',
767
+ typeAnnotation: {
768
+ type: 'ObjectTypeAnnotation',
769
+ properties: [
770
+ {
771
+ optional: false,
772
+ name: 'x',
773
+ typeAnnotation: {
774
+ type: 'NumberTypeAnnotation',
775
+ },
776
+ },
777
+ {
778
+ optional: false,
779
+ name: 'y',
780
+ typeAnnotation: {
781
+ type: 'NumberTypeAnnotation',
782
+ },
783
+ },
784
+ ],
785
+ },
786
+ },
787
+ {
788
+ optional: false,
789
+ name: 'size',
790
+ typeAnnotation: {
791
+ type: 'ObjectTypeAnnotation',
792
+ properties: [
793
+ {
794
+ optional: false,
795
+ name: 'width',
796
+ typeAnnotation: {
797
+ type: 'NumberTypeAnnotation',
798
+ },
799
+ },
800
+ {
801
+ optional: false,
802
+ name: 'height',
803
+ typeAnnotation: {
804
+ type: 'NumberTypeAnnotation',
805
+ },
806
+ },
807
+ ],
808
+ },
809
+ },
810
+ {
811
+ optional: true,
812
+ name: 'displaySize',
813
+ typeAnnotation: {
814
+ type: 'ObjectTypeAnnotation',
815
+ properties: [
816
+ {
817
+ optional: false,
818
+ name: 'width',
819
+ typeAnnotation: {
820
+ type: 'NumberTypeAnnotation',
821
+ },
822
+ },
823
+ {
824
+ optional: false,
825
+ name: 'height',
826
+ typeAnnotation: {
827
+ type: 'NumberTypeAnnotation',
828
+ },
829
+ },
830
+ ],
831
+ },
832
+ },
833
+ {
834
+ optional: true,
835
+ name: 'resizeMode',
836
+ typeAnnotation: {
837
+ type: 'StringTypeAnnotation',
838
+ },
839
+ },
840
+ {
841
+ optional: true,
842
+ name: 'allowExternalStorage',
843
+ typeAnnotation: {
844
+ type: 'BooleanTypeAnnotation',
845
+ },
846
+ },
847
+ ],
848
+ },
849
+ },
850
+ spec: {
851
+ properties: [
852
+ {
853
+ name: 'getConstants',
854
+ optional: false,
855
+ typeAnnotation: {
856
+ type: 'FunctionTypeAnnotation',
857
+ returnTypeAnnotation: {
858
+ type: 'ObjectTypeAnnotation',
859
+ properties: [],
860
+ },
861
+ params: [],
862
+ },
863
+ },
864
+ {
865
+ name: 'cropImage',
866
+ optional: false,
867
+ typeAnnotation: {
868
+ type: 'FunctionTypeAnnotation',
869
+ returnTypeAnnotation: {
870
+ type: 'VoidTypeAnnotation',
871
+ },
872
+ params: [
873
+ {
874
+ optional: false,
875
+ name: 'cropData',
876
+ typeAnnotation: {
877
+ type: 'TypeAliasTypeAnnotation',
878
+ name: 'Options',
879
+ },
880
+ },
881
+ ],
882
+ },
883
+ },
884
+ ],
885
+ },
886
+ moduleName: 'AliasTurboModule',
887
+ },
888
+ },
889
+ };
890
+ const REAL_MODULE_EXAMPLE = {
891
+ modules: {
892
+ NativeCameraRollManager: {
893
+ type: 'NativeModule',
894
+ aliases: {
895
+ PhotoIdentifierImage: {
896
+ type: 'ObjectTypeAnnotation',
897
+ properties: [
898
+ {
899
+ optional: false,
900
+ name: 'uri',
901
+ typeAnnotation: {
902
+ type: 'StringTypeAnnotation',
903
+ },
904
+ },
905
+ {
906
+ optional: false,
907
+ name: 'playableDuration',
908
+ typeAnnotation: {
909
+ type: 'NumberTypeAnnotation',
910
+ },
911
+ },
912
+ {
913
+ optional: false,
914
+ name: 'width',
915
+ typeAnnotation: {
916
+ type: 'NumberTypeAnnotation',
917
+ },
918
+ },
919
+ {
920
+ optional: false,
921
+ name: 'height',
922
+ typeAnnotation: {
923
+ type: 'NumberTypeAnnotation',
924
+ },
925
+ },
926
+ {
927
+ optional: true,
928
+ name: 'isStored',
929
+ typeAnnotation: {
930
+ type: 'BooleanTypeAnnotation',
931
+ },
932
+ },
933
+ {
934
+ optional: false,
935
+ name: 'filename',
936
+ typeAnnotation: {
937
+ type: 'StringTypeAnnotation',
938
+ },
939
+ },
940
+ ],
941
+ },
942
+ PhotoIdentifier: {
943
+ type: 'ObjectTypeAnnotation',
944
+ properties: [
945
+ {
946
+ optional: false,
947
+ name: 'node',
948
+ typeAnnotation: {
949
+ type: 'ObjectTypeAnnotation',
950
+ properties: [
951
+ {
952
+ optional: false,
953
+ name: 'image',
954
+ typeAnnotation: {
955
+ type: 'TypeAliasTypeAnnotation',
956
+ name: 'PhotoIdentifierImage',
957
+ },
958
+ },
959
+ {
960
+ optional: false,
961
+ name: 'type',
962
+ typeAnnotation: {
963
+ type: 'StringTypeAnnotation',
964
+ },
965
+ },
966
+ {
967
+ optional: false,
968
+ name: 'group_name',
969
+ typeAnnotation: {
970
+ type: 'StringTypeAnnotation',
971
+ },
972
+ },
973
+ {
974
+ optional: false,
975
+ name: 'timestamp',
976
+ typeAnnotation: {
977
+ type: 'NumberTypeAnnotation',
978
+ },
979
+ },
980
+ {
981
+ optional: false,
982
+ name: 'location',
983
+ typeAnnotation: {
984
+ type: 'ObjectTypeAnnotation',
985
+ properties: [
986
+ {
987
+ optional: false,
988
+ name: 'longitude',
989
+ typeAnnotation: {
990
+ type: 'NumberTypeAnnotation',
991
+ },
992
+ },
993
+ {
994
+ optional: false,
995
+ name: 'latitude',
996
+ typeAnnotation: {
997
+ type: 'NumberTypeAnnotation',
998
+ },
999
+ },
1000
+ {
1001
+ optional: true,
1002
+ name: 'altitude',
1003
+ typeAnnotation: {
1004
+ type: 'NumberTypeAnnotation',
1005
+ },
1006
+ },
1007
+ {
1008
+ optional: true,
1009
+ name: 'heading',
1010
+ typeAnnotation: {
1011
+ type: 'NumberTypeAnnotation',
1012
+ },
1013
+ },
1014
+ {
1015
+ optional: true,
1016
+ name: 'speed',
1017
+ typeAnnotation: {
1018
+ type: 'NumberTypeAnnotation',
1019
+ },
1020
+ },
1021
+ ],
1022
+ },
1023
+ },
1024
+ ],
1025
+ },
1026
+ },
1027
+ ],
1028
+ },
1029
+ PhotoIdentifiersPage: {
1030
+ type: 'ObjectTypeAnnotation',
1031
+ properties: [
1032
+ {
1033
+ optional: false,
1034
+ name: 'edges',
1035
+ typeAnnotation: {
1036
+ type: 'ArrayTypeAnnotation',
1037
+ elementType: {
1038
+ type: 'TypeAliasTypeAnnotation',
1039
+ name: 'PhotoIdentifier',
1040
+ },
1041
+ },
1042
+ },
1043
+ {
1044
+ optional: false,
1045
+ name: 'page_info',
1046
+ typeAnnotation: {
1047
+ type: 'ObjectTypeAnnotation',
1048
+ properties: [
1049
+ {
1050
+ optional: false,
1051
+ name: 'has_next_page',
1052
+ typeAnnotation: {
1053
+ type: 'BooleanTypeAnnotation',
1054
+ },
1055
+ },
1056
+ {
1057
+ optional: true,
1058
+ name: 'start_cursor',
1059
+ typeAnnotation: {
1060
+ type: 'StringTypeAnnotation',
1061
+ },
1062
+ },
1063
+ {
1064
+ optional: true,
1065
+ name: 'end_cursor',
1066
+ typeAnnotation: {
1067
+ type: 'StringTypeAnnotation',
1068
+ },
1069
+ },
1070
+ ],
1071
+ },
1072
+ },
1073
+ ],
1074
+ },
1075
+ GetPhotosParams: {
1076
+ type: 'ObjectTypeAnnotation',
1077
+ properties: [
1078
+ {
1079
+ optional: false,
1080
+ name: 'first',
1081
+ typeAnnotation: {
1082
+ type: 'NumberTypeAnnotation',
1083
+ },
1084
+ },
1085
+ {
1086
+ optional: true,
1087
+ name: 'after',
1088
+ typeAnnotation: {
1089
+ type: 'StringTypeAnnotation',
1090
+ },
1091
+ },
1092
+ {
1093
+ optional: true,
1094
+ name: 'groupName',
1095
+ typeAnnotation: {
1096
+ type: 'StringTypeAnnotation',
1097
+ },
1098
+ },
1099
+ {
1100
+ optional: true,
1101
+ name: 'groupTypes',
1102
+ typeAnnotation: {
1103
+ type: 'StringTypeAnnotation',
1104
+ },
1105
+ },
1106
+ {
1107
+ optional: true,
1108
+ name: 'assetType',
1109
+ typeAnnotation: {
1110
+ type: 'StringTypeAnnotation',
1111
+ },
1112
+ },
1113
+ {
1114
+ optional: true,
1115
+ name: 'maxSize',
1116
+ typeAnnotation: {
1117
+ type: 'NumberTypeAnnotation',
1118
+ },
1119
+ },
1120
+ {
1121
+ optional: true,
1122
+ name: 'mimeTypes',
1123
+ typeAnnotation: {
1124
+ type: 'ArrayTypeAnnotation',
1125
+ elementType: {
1126
+ type: 'StringTypeAnnotation',
1127
+ },
1128
+ },
1129
+ },
1130
+ ],
1131
+ },
1132
+ },
1133
+ spec: {
1134
+ properties: [
1135
+ {
1136
+ name: 'getConstants',
1137
+ optional: false,
1138
+ typeAnnotation: {
1139
+ type: 'FunctionTypeAnnotation',
1140
+ returnTypeAnnotation: {
1141
+ type: 'ObjectTypeAnnotation',
1142
+ properties: [],
1143
+ },
1144
+ params: [],
1145
+ },
1146
+ },
1147
+ {
1148
+ name: 'getPhotos',
1149
+ optional: false,
1150
+ typeAnnotation: {
1151
+ type: 'FunctionTypeAnnotation',
1152
+ returnTypeAnnotation: {
1153
+ type: 'PromiseTypeAnnotation',
1154
+ },
1155
+ params: [
1156
+ {
1157
+ optional: false,
1158
+ name: 'params',
1159
+ typeAnnotation: {
1160
+ type: 'TypeAliasTypeAnnotation',
1161
+ name: 'GetPhotosParams',
1162
+ },
1163
+ },
1164
+ ],
1165
+ },
1166
+ },
1167
+ {
1168
+ name: 'saveToCameraRoll',
1169
+ optional: false,
1170
+ typeAnnotation: {
1171
+ type: 'FunctionTypeAnnotation',
1172
+ returnTypeAnnotation: {
1173
+ type: 'PromiseTypeAnnotation',
1174
+ },
1175
+ params: [
1176
+ {
1177
+ optional: false,
1178
+ name: 'uri',
1179
+ typeAnnotation: {
1180
+ type: 'StringTypeAnnotation',
1181
+ },
1182
+ },
1183
+ {
1184
+ optional: false,
1185
+ name: 'type',
1186
+ typeAnnotation: {
1187
+ type: 'StringTypeAnnotation',
1188
+ },
1189
+ },
1190
+ ],
1191
+ },
1192
+ },
1193
+ {
1194
+ name: 'deletePhotos',
1195
+ optional: false,
1196
+ typeAnnotation: {
1197
+ type: 'FunctionTypeAnnotation',
1198
+ returnTypeAnnotation: {
1199
+ type: 'PromiseTypeAnnotation',
1200
+ },
1201
+ params: [
1202
+ {
1203
+ name: 'assets',
1204
+ optional: false,
1205
+ typeAnnotation: {
1206
+ type: 'ArrayTypeAnnotation',
1207
+ elementType: {
1208
+ type: 'StringTypeAnnotation',
1209
+ },
1210
+ },
1211
+ },
1212
+ ],
1213
+ },
1214
+ },
1215
+ ],
1216
+ },
1217
+ moduleName: 'CameraRollManager',
1218
+ },
1219
+ NativeExceptionsManager: {
1220
+ type: 'NativeModule',
1221
+ aliases: {
1222
+ StackFrame: {
1223
+ properties: [
1224
+ {
1225
+ optional: true,
1226
+ name: 'column',
1227
+ typeAnnotation: {
1228
+ type: 'NumberTypeAnnotation',
1229
+ },
1230
+ },
1231
+ {
1232
+ optional: false,
1233
+ name: 'file',
1234
+ typeAnnotation: {
1235
+ type: 'StringTypeAnnotation',
1236
+ },
1237
+ },
1238
+ {
1239
+ optional: true,
1240
+ name: 'lineNumber',
1241
+ typeAnnotation: {
1242
+ type: 'NumberTypeAnnotation',
1243
+ },
1244
+ },
1245
+ {
1246
+ optional: false,
1247
+ name: 'methodName',
1248
+ typeAnnotation: {
1249
+ type: 'StringTypeAnnotation',
1250
+ },
1251
+ },
1252
+ {
1253
+ optional: true,
1254
+ name: 'collapse',
1255
+ typeAnnotation: {
1256
+ type: 'BooleanTypeAnnotation',
1257
+ },
1258
+ },
1259
+ ],
1260
+ type: 'ObjectTypeAnnotation',
1261
+ },
1262
+ ExceptionData: {
1263
+ properties: [
1264
+ {
1265
+ optional: false,
1266
+ name: 'message',
1267
+ typeAnnotation: {
1268
+ type: 'StringTypeAnnotation',
1269
+ },
1270
+ },
1271
+ {
1272
+ optional: false,
1273
+ name: 'originalMessage',
1274
+ typeAnnotation: {
1275
+ type: 'StringTypeAnnotation',
1276
+ },
1277
+ },
1278
+ {
1279
+ optional: false,
1280
+ name: 'name',
1281
+ typeAnnotation: {
1282
+ type: 'StringTypeAnnotation',
1283
+ },
1284
+ },
1285
+ {
1286
+ optional: false,
1287
+ name: 'componentStack',
1288
+ typeAnnotation: {
1289
+ type: 'StringTypeAnnotation',
1290
+ },
1291
+ },
1292
+ {
1293
+ optional: false,
1294
+ name: 'stack',
1295
+ typeAnnotation: {
1296
+ type: 'ArrayTypeAnnotation',
1297
+ elementType: {
1298
+ type: 'TypeAliasTypeAnnotation',
1299
+ name: 'StackFrame',
1300
+ },
1301
+ },
1302
+ },
1303
+ {
1304
+ optional: false,
1305
+ name: 'id',
1306
+ typeAnnotation: {
1307
+ type: 'NumberTypeAnnotation',
1308
+ },
1309
+ },
1310
+ {
1311
+ optional: false,
1312
+ name: 'isFatal',
1313
+ typeAnnotation: {
1314
+ type: 'BooleanTypeAnnotation',
1315
+ },
1316
+ },
1317
+ {
1318
+ optional: true,
1319
+ name: 'extraData',
1320
+ typeAnnotation: {
1321
+ type: 'GenericObjectTypeAnnotation',
1322
+ },
1323
+ },
1324
+ ],
1325
+ type: 'ObjectTypeAnnotation',
1326
+ },
1327
+ },
1328
+ spec: {
1329
+ properties: [
1330
+ {
1331
+ name: 'reportFatalException',
1332
+ optional: false,
1333
+ typeAnnotation: {
1334
+ type: 'FunctionTypeAnnotation',
1335
+ returnTypeAnnotation: {
1336
+ type: 'VoidTypeAnnotation',
1337
+ },
1338
+ params: [
1339
+ {
1340
+ optional: false,
1341
+ name: 'message',
1342
+ typeAnnotation: {
1343
+ type: 'StringTypeAnnotation',
1344
+ },
1345
+ },
1346
+ {
1347
+ name: 'stack',
1348
+ optional: false,
1349
+ typeAnnotation: {
1350
+ type: 'ArrayTypeAnnotation',
1351
+ elementType: {
1352
+ type: 'TypeAliasTypeAnnotation',
1353
+ name: 'StackFrame',
1354
+ },
1355
+ },
1356
+ },
1357
+ {
1358
+ optional: false,
1359
+ name: 'exceptionId',
1360
+ typeAnnotation: {
1361
+ type: 'NumberTypeAnnotation',
1362
+ },
1363
+ },
1364
+ ],
1365
+ },
1366
+ },
1367
+ {
1368
+ name: 'reportSoftException',
1369
+ optional: false,
1370
+ typeAnnotation: {
1371
+ type: 'FunctionTypeAnnotation',
1372
+ returnTypeAnnotation: {
1373
+ type: 'VoidTypeAnnotation',
1374
+ },
1375
+ params: [
1376
+ {
1377
+ optional: false,
1378
+ name: 'message',
1379
+ typeAnnotation: {
1380
+ type: 'StringTypeAnnotation',
1381
+ },
1382
+ },
1383
+ {
1384
+ name: 'stack',
1385
+ optional: false,
1386
+ typeAnnotation: {
1387
+ type: 'ArrayTypeAnnotation',
1388
+ elementType: {
1389
+ type: 'TypeAliasTypeAnnotation',
1390
+ name: 'StackFrame',
1391
+ },
1392
+ },
1393
+ },
1394
+ {
1395
+ optional: false,
1396
+ name: 'exceptionId',
1397
+ typeAnnotation: {
1398
+ type: 'NumberTypeAnnotation',
1399
+ },
1400
+ },
1401
+ ],
1402
+ },
1403
+ },
1404
+ {
1405
+ name: 'reportException',
1406
+ optional: true,
1407
+ typeAnnotation: {
1408
+ type: 'NullableTypeAnnotation',
1409
+ typeAnnotation: {
1410
+ type: 'FunctionTypeAnnotation',
1411
+ returnTypeAnnotation: {
1412
+ type: 'VoidTypeAnnotation',
1413
+ },
1414
+ params: [
1415
+ {
1416
+ optional: false,
1417
+ name: 'data',
1418
+ typeAnnotation: {
1419
+ type: 'TypeAliasTypeAnnotation',
1420
+ name: 'ExceptionData',
1421
+ },
1422
+ },
1423
+ ],
1424
+ },
1425
+ },
1426
+ },
1427
+ {
1428
+ name: 'updateExceptionMessage',
1429
+ optional: false,
1430
+ typeAnnotation: {
1431
+ type: 'FunctionTypeAnnotation',
1432
+ returnTypeAnnotation: {
1433
+ type: 'VoidTypeAnnotation',
1434
+ },
1435
+ params: [
1436
+ {
1437
+ optional: false,
1438
+ name: 'message',
1439
+ typeAnnotation: {
1440
+ type: 'StringTypeAnnotation',
1441
+ },
1442
+ },
1443
+ {
1444
+ name: 'stack',
1445
+ optional: false,
1446
+ typeAnnotation: {
1447
+ type: 'ArrayTypeAnnotation',
1448
+ elementType: {
1449
+ type: 'TypeAliasTypeAnnotation',
1450
+ name: 'StackFrame',
1451
+ },
1452
+ },
1453
+ },
1454
+ {
1455
+ optional: false,
1456
+ name: 'exceptionId',
1457
+ typeAnnotation: {
1458
+ type: 'NumberTypeAnnotation',
1459
+ },
1460
+ },
1461
+ ],
1462
+ },
1463
+ },
1464
+ {
1465
+ name: 'dismissRedbox',
1466
+ optional: true,
1467
+ typeAnnotation: {
1468
+ type: 'NullableTypeAnnotation',
1469
+ typeAnnotation: {
1470
+ type: 'FunctionTypeAnnotation',
1471
+ returnTypeAnnotation: {
1472
+ type: 'VoidTypeAnnotation',
1473
+ },
1474
+ params: [],
1475
+ },
1476
+ },
1477
+ },
1478
+ ],
1479
+ },
1480
+ moduleName: 'ExceptionsManager',
1481
+ },
1482
+ },
1483
+ };
1484
+ const CXX_ONLY_NATIVE_MODULES = {
1485
+ modules: {
1486
+ NativeSampleTurboModule: {
1487
+ type: 'NativeModule',
1488
+ aliases: {
1489
+ ObjectAlias: {
1490
+ type: 'ObjectTypeAnnotation',
1491
+ properties: [
1492
+ {
1493
+ name: 'x',
1494
+ optional: false,
1495
+ typeAnnotation: {
1496
+ type: 'NumberTypeAnnotation',
1497
+ },
1498
+ },
1499
+ ],
1500
+ },
1501
+ },
1502
+ spec: {
1503
+ properties: [
1504
+ {
1505
+ name: 'getMixed',
1506
+ optional: false,
1507
+ typeAnnotation: {
1508
+ type: 'FunctionTypeAnnotation',
1509
+ returnTypeAnnotation: {
1510
+ type: 'MixedTypeAnnotation',
1511
+ },
1512
+ params: [
1513
+ {
1514
+ name: 'arg',
1515
+ optional: false,
1516
+ typeAnnotation: {
1517
+ type: 'MixedTypeAnnotation',
1518
+ },
1519
+ },
1520
+ ],
1521
+ },
1522
+ },
1523
+ {
1524
+ name: 'getNullableNumberFromNullableAlias',
1525
+ optional: false,
1526
+ typeAnnotation: {
1527
+ type: 'FunctionTypeAnnotation',
1528
+ returnTypeAnnotation: {
1529
+ type: 'NullableTypeAnnotation',
1530
+ typeAnnotation: {
1531
+ type: 'NumberTypeAnnotation',
1532
+ },
1533
+ },
1534
+ params: [
1535
+ {
1536
+ name: 'a',
1537
+ optional: false,
1538
+ typeAnnotation: {
1539
+ type: 'NullableTypeAnnotation',
1540
+ typeAnnotation: {
1541
+ type: 'TypeAliasTypeAnnotation',
1542
+ name: 'ObjectAlias',
1543
+ },
1544
+ },
1545
+ },
1546
+ ],
1547
+ },
1548
+ },
1549
+ {
1550
+ name: 'getEnums',
1551
+ optional: false,
1552
+ typeAnnotation: {
1553
+ type: 'FunctionTypeAnnotation',
1554
+ returnTypeAnnotation: {
1555
+ type: 'StringTypeAnnotation',
1556
+ },
1557
+ params: [
1558
+ {
1559
+ name: 'enumInt',
1560
+ optional: false,
1561
+ typeAnnotation: {
1562
+ type: 'EnumDeclaration',
1563
+ memberType: 'NumberTypeAnnotation',
1564
+ },
1565
+ },
1566
+ {
1567
+ name: 'enumFloat',
1568
+ optional: false,
1569
+ typeAnnotation: {
1570
+ type: 'EnumDeclaration',
1571
+ memberType: 'NumberTypeAnnotation',
1572
+ },
1573
+ },
1574
+ {
1575
+ name: 'enumString',
1576
+ optional: false,
1577
+ typeAnnotation: {
1578
+ type: 'EnumDeclaration',
1579
+ memberType: 'StringTypeAnnotation',
1580
+ },
1581
+ },
1582
+ ],
1583
+ },
1584
+ },
1585
+ {
1586
+ name: 'getUnion',
1587
+ optional: false,
1588
+ typeAnnotation: {
1589
+ type: 'FunctionTypeAnnotation',
1590
+ returnTypeAnnotation: {
1591
+ type: 'UnionTypeAnnotation',
1592
+ memberType: 'ObjectTypeAnnotation',
1593
+ },
1594
+ params: [
1595
+ {
1596
+ name: 'chooseInt',
1597
+ optional: false,
1598
+ typeAnnotation: {
1599
+ type: 'UnionTypeAnnotation',
1600
+ memberType: 'NumberTypeAnnotation',
1601
+ },
1602
+ },
1603
+ {
1604
+ name: 'chooseFloat',
1605
+ optional: false,
1606
+ typeAnnotation: {
1607
+ type: 'UnionTypeAnnotation',
1608
+ memberType: 'NumberTypeAnnotation',
1609
+ },
1610
+ },
1611
+ {
1612
+ name: 'chooseObject',
1613
+ optional: false,
1614
+ typeAnnotation: {
1615
+ type: 'UnionTypeAnnotation',
1616
+ memberType: 'ObjectTypeAnnotation',
1617
+ },
1618
+ },
1619
+ {
1620
+ name: 'chooseString',
1621
+ optional: false,
1622
+ typeAnnotation: {
1623
+ type: 'UnionTypeAnnotation',
1624
+ memberType: 'StringTypeAnnotation',
1625
+ },
1626
+ },
1627
+ ],
1628
+ },
1629
+ },
1630
+ ],
1631
+ },
1632
+ moduleName: 'SampleTurboModuleCxx',
1633
+ excludedPlatforms: ['iOS', 'android'],
1634
+ },
1635
+ },
1636
+ };
1637
+ const SAMPLE_WITH_UPPERCASE_NAME = {
1638
+ modules: {
1639
+ NativeSampleTurboModule: {
1640
+ type: 'NativeModule',
1641
+ aliases: {},
1642
+ spec: {
1643
+ properties: [],
1644
+ },
1645
+ moduleName: 'SampleTurboModule',
1646
+ },
1647
+ },
1648
+ };
1649
+ module.exports = {
1650
+ complex_objects: COMPLEX_OBJECTS,
1651
+ two_modules_different_files: TWO_MODULES_DIFFERENT_FILES,
1652
+ empty_native_modules: EMPTY_NATIVE_MODULES,
1653
+ simple_native_modules: SIMPLE_NATIVE_MODULES,
1654
+ native_modules_with_type_aliases: NATIVE_MODULES_WITH_TYPE_ALIASES,
1655
+ real_module_example: REAL_MODULE_EXAMPLE,
1656
+ cxx_only_native_modules: CXX_ONLY_NATIVE_MODULES,
1657
+ SampleWithUppercaseName: SAMPLE_WITH_UPPERCASE_NAME,
1658
+ };