@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,1641 @@
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 NO_PROPS_NO_EVENTS = {
14
+ modules: {
15
+ NoPropsNoEvents: {
16
+ type: 'Component',
17
+ components: {
18
+ NoPropsNoEventsComponent: {
19
+ extendsProps: [
20
+ {
21
+ type: 'ReactNativeBuiltInType',
22
+ knownTypeName: 'ReactNativeCoreViewProps',
23
+ },
24
+ ],
25
+ events: [],
26
+ props: [],
27
+ commands: [],
28
+ },
29
+ },
30
+ },
31
+ },
32
+ };
33
+ const INTERFACE_ONLY = {
34
+ modules: {
35
+ Switch: {
36
+ type: 'Component',
37
+ components: {
38
+ InterfaceOnlyComponent: {
39
+ interfaceOnly: true,
40
+ paperComponentName: 'RCTInterfaceOnlyComponent',
41
+ extendsProps: [
42
+ {
43
+ type: 'ReactNativeBuiltInType',
44
+ knownTypeName: 'ReactNativeCoreViewProps',
45
+ },
46
+ ],
47
+ events: [
48
+ {
49
+ name: 'onChange',
50
+ optional: true,
51
+ bubblingType: 'bubble',
52
+ typeAnnotation: {
53
+ type: 'EventTypeAnnotation',
54
+ argument: {
55
+ type: 'ObjectTypeAnnotation',
56
+ properties: [
57
+ {
58
+ name: 'value',
59
+ optional: false,
60
+ typeAnnotation: {
61
+ type: 'BooleanTypeAnnotation',
62
+ },
63
+ },
64
+ ],
65
+ },
66
+ },
67
+ },
68
+ ],
69
+ props: [
70
+ {
71
+ name: 'accessibilityHint',
72
+ optional: true,
73
+ typeAnnotation: {
74
+ type: 'StringTypeAnnotation',
75
+ default: '',
76
+ },
77
+ },
78
+ ],
79
+ commands: [],
80
+ },
81
+ },
82
+ },
83
+ },
84
+ };
85
+ const EVENTS_WITH_PAPER_NAME = {
86
+ modules: {
87
+ Switch: {
88
+ type: 'Component',
89
+ components: {
90
+ InterfaceOnlyComponent: {
91
+ interfaceOnly: true,
92
+ paperComponentName: 'RCTInterfaceOnlyComponent',
93
+ extendsProps: [
94
+ {
95
+ type: 'ReactNativeBuiltInType',
96
+ knownTypeName: 'ReactNativeCoreViewProps',
97
+ },
98
+ ],
99
+ events: [
100
+ {
101
+ name: 'onChange',
102
+ paperTopLevelNameDeprecated: 'paperChange',
103
+ optional: true,
104
+ bubblingType: 'bubble',
105
+ typeAnnotation: {
106
+ type: 'EventTypeAnnotation',
107
+ argument: {
108
+ type: 'ObjectTypeAnnotation',
109
+ properties: [
110
+ {
111
+ name: 'value',
112
+ optional: false,
113
+ typeAnnotation: {
114
+ type: 'BooleanTypeAnnotation',
115
+ },
116
+ },
117
+ ],
118
+ },
119
+ },
120
+ },
121
+ {
122
+ name: 'onDire tChange',
123
+ paperTopLevelNameDeprecated: 'paperDirectChange',
124
+ optional: true,
125
+ bubblingType: 'direct',
126
+ typeAnnotation: {
127
+ type: 'EventTypeAnnotation',
128
+ argument: {
129
+ type: 'ObjectTypeAnnotation',
130
+ properties: [
131
+ {
132
+ name: 'value',
133
+ optional: false,
134
+ typeAnnotation: {
135
+ type: 'BooleanTypeAnnotation',
136
+ },
137
+ },
138
+ ],
139
+ },
140
+ },
141
+ },
142
+ ],
143
+ props: [],
144
+ commands: [],
145
+ },
146
+ },
147
+ },
148
+ },
149
+ };
150
+ const BOOLEAN_PROP = {
151
+ modules: {
152
+ Switch: {
153
+ type: 'Component',
154
+ components: {
155
+ BooleanPropNativeComponent: {
156
+ extendsProps: [
157
+ {
158
+ type: 'ReactNativeBuiltInType',
159
+ knownTypeName: 'ReactNativeCoreViewProps',
160
+ },
161
+ ],
162
+ events: [],
163
+ props: [
164
+ {
165
+ name: 'disabled',
166
+ optional: true,
167
+ typeAnnotation: {
168
+ type: 'BooleanTypeAnnotation',
169
+ default: false,
170
+ },
171
+ },
172
+ ],
173
+ commands: [],
174
+ },
175
+ },
176
+ },
177
+ },
178
+ };
179
+ const STRING_PROP = {
180
+ modules: {
181
+ Switch: {
182
+ type: 'Component',
183
+ components: {
184
+ StringPropComponent: {
185
+ extendsProps: [
186
+ {
187
+ type: 'ReactNativeBuiltInType',
188
+ knownTypeName: 'ReactNativeCoreViewProps',
189
+ },
190
+ ],
191
+ events: [],
192
+ props: [
193
+ {
194
+ name: 'accessibilityHint',
195
+ optional: true,
196
+ typeAnnotation: {
197
+ type: 'StringTypeAnnotation',
198
+ default: '',
199
+ },
200
+ },
201
+ {
202
+ name: 'accessibilityRole',
203
+ optional: true,
204
+ typeAnnotation: {
205
+ type: 'StringTypeAnnotation',
206
+ default: null,
207
+ },
208
+ },
209
+ ],
210
+ commands: [],
211
+ },
212
+ },
213
+ },
214
+ },
215
+ };
216
+ const INTEGER_PROPS = {
217
+ modules: {
218
+ Switch: {
219
+ type: 'Component',
220
+ components: {
221
+ IntegerPropNativeComponent: {
222
+ extendsProps: [
223
+ {
224
+ type: 'ReactNativeBuiltInType',
225
+ knownTypeName: 'ReactNativeCoreViewProps',
226
+ },
227
+ ],
228
+ events: [],
229
+ props: [
230
+ {
231
+ name: 'progress1',
232
+ optional: true,
233
+ typeAnnotation: {
234
+ type: 'Int32TypeAnnotation',
235
+ default: 0,
236
+ },
237
+ },
238
+ {
239
+ name: 'progress2',
240
+ optional: true,
241
+ typeAnnotation: {
242
+ type: 'Int32TypeAnnotation',
243
+ default: -1,
244
+ },
245
+ },
246
+ {
247
+ name: 'progress3',
248
+ optional: true,
249
+ typeAnnotation: {
250
+ type: 'Int32TypeAnnotation',
251
+ default: 10,
252
+ },
253
+ },
254
+ ],
255
+ commands: [],
256
+ },
257
+ },
258
+ },
259
+ },
260
+ };
261
+ const FLOAT_PROPS = {
262
+ modules: {
263
+ Switch: {
264
+ type: 'Component',
265
+ components: {
266
+ FloatPropNativeComponent: {
267
+ extendsProps: [
268
+ {
269
+ type: 'ReactNativeBuiltInType',
270
+ knownTypeName: 'ReactNativeCoreViewProps',
271
+ },
272
+ ],
273
+ events: [],
274
+ props: [
275
+ {
276
+ name: 'blurRadius',
277
+ optional: false,
278
+ typeAnnotation: {
279
+ type: 'FloatTypeAnnotation',
280
+ default: 0.0,
281
+ },
282
+ },
283
+ {
284
+ name: 'blurRadius2',
285
+ optional: true,
286
+ typeAnnotation: {
287
+ type: 'FloatTypeAnnotation',
288
+ default: 0.001,
289
+ },
290
+ },
291
+ {
292
+ name: 'blurRadius3',
293
+ optional: true,
294
+ typeAnnotation: {
295
+ type: 'FloatTypeAnnotation',
296
+ default: 2.1,
297
+ },
298
+ },
299
+ {
300
+ name: 'blurRadius4',
301
+ optional: true,
302
+ typeAnnotation: {
303
+ type: 'FloatTypeAnnotation',
304
+ default: 0,
305
+ },
306
+ },
307
+ {
308
+ name: 'blurRadius5',
309
+ optional: true,
310
+ typeAnnotation: {
311
+ type: 'FloatTypeAnnotation',
312
+ default: 1,
313
+ },
314
+ },
315
+ {
316
+ name: 'blurRadius6',
317
+ optional: true,
318
+ typeAnnotation: {
319
+ type: 'FloatTypeAnnotation',
320
+ default: -0.0,
321
+ },
322
+ },
323
+ ],
324
+ commands: [],
325
+ },
326
+ },
327
+ },
328
+ },
329
+ };
330
+ const DOUBLE_PROPS = {
331
+ modules: {
332
+ Switch: {
333
+ type: 'Component',
334
+ components: {
335
+ DoublePropNativeComponent: {
336
+ extendsProps: [
337
+ {
338
+ type: 'ReactNativeBuiltInType',
339
+ knownTypeName: 'ReactNativeCoreViewProps',
340
+ },
341
+ ],
342
+ events: [],
343
+ props: [
344
+ {
345
+ name: 'blurRadius',
346
+ optional: false,
347
+ typeAnnotation: {
348
+ type: 'DoubleTypeAnnotation',
349
+ default: 0.0,
350
+ },
351
+ },
352
+ {
353
+ name: 'blurRadius2',
354
+ optional: true,
355
+ typeAnnotation: {
356
+ type: 'DoubleTypeAnnotation',
357
+ default: 0.001,
358
+ },
359
+ },
360
+ {
361
+ name: 'blurRadius3',
362
+ optional: true,
363
+ typeAnnotation: {
364
+ type: 'DoubleTypeAnnotation',
365
+ default: 2.1,
366
+ },
367
+ },
368
+ {
369
+ name: 'blurRadius4',
370
+ optional: true,
371
+ typeAnnotation: {
372
+ type: 'DoubleTypeAnnotation',
373
+ default: 0,
374
+ },
375
+ },
376
+ {
377
+ name: 'blurRadius5',
378
+ optional: true,
379
+ typeAnnotation: {
380
+ type: 'DoubleTypeAnnotation',
381
+ default: 1,
382
+ },
383
+ },
384
+ {
385
+ name: 'blurRadius6',
386
+ optional: true,
387
+ typeAnnotation: {
388
+ type: 'DoubleTypeAnnotation',
389
+ default: -0.0,
390
+ },
391
+ },
392
+ ],
393
+ commands: [],
394
+ },
395
+ },
396
+ },
397
+ },
398
+ };
399
+ const COLOR_PROP = {
400
+ modules: {
401
+ Switch: {
402
+ type: 'Component',
403
+ components: {
404
+ ColorPropNativeComponent: {
405
+ extendsProps: [
406
+ {
407
+ type: 'ReactNativeBuiltInType',
408
+ knownTypeName: 'ReactNativeCoreViewProps',
409
+ },
410
+ ],
411
+ events: [],
412
+ props: [
413
+ {
414
+ name: 'tintColor',
415
+ optional: true,
416
+ typeAnnotation: {
417
+ type: 'ReservedPropTypeAnnotation',
418
+ name: 'ColorPrimitive',
419
+ },
420
+ },
421
+ ],
422
+ commands: [],
423
+ },
424
+ },
425
+ },
426
+ },
427
+ };
428
+ const IMAGE_PROP = {
429
+ modules: {
430
+ Slider: {
431
+ type: 'Component',
432
+ components: {
433
+ ImagePropNativeComponent: {
434
+ extendsProps: [
435
+ {
436
+ type: 'ReactNativeBuiltInType',
437
+ knownTypeName: 'ReactNativeCoreViewProps',
438
+ },
439
+ ],
440
+ events: [],
441
+ props: [
442
+ {
443
+ name: 'thumbImage',
444
+ optional: true,
445
+ typeAnnotation: {
446
+ type: 'ReservedPropTypeAnnotation',
447
+ name: 'ImageSourcePrimitive',
448
+ },
449
+ },
450
+ ],
451
+ commands: [],
452
+ },
453
+ },
454
+ },
455
+ },
456
+ };
457
+ const POINT_PROP = {
458
+ modules: {
459
+ Switch: {
460
+ type: 'Component',
461
+ components: {
462
+ PointPropNativeComponent: {
463
+ extendsProps: [
464
+ {
465
+ type: 'ReactNativeBuiltInType',
466
+ knownTypeName: 'ReactNativeCoreViewProps',
467
+ },
468
+ ],
469
+ events: [],
470
+ props: [
471
+ {
472
+ name: 'startPoint',
473
+ optional: true,
474
+ typeAnnotation: {
475
+ type: 'ReservedPropTypeAnnotation',
476
+ name: 'PointPrimitive',
477
+ },
478
+ },
479
+ ],
480
+ commands: [],
481
+ },
482
+ },
483
+ },
484
+ },
485
+ };
486
+ const INSETS_PROP = {
487
+ modules: {
488
+ ScrollView: {
489
+ type: 'Component',
490
+ components: {
491
+ InsetsPropNativeComponent: {
492
+ extendsProps: [
493
+ {
494
+ type: 'ReactNativeBuiltInType',
495
+ knownTypeName: 'ReactNativeCoreViewProps',
496
+ },
497
+ ],
498
+ events: [],
499
+ props: [
500
+ {
501
+ name: 'contentInset',
502
+ optional: true,
503
+ typeAnnotation: {
504
+ type: 'ReservedPropTypeAnnotation',
505
+ name: 'EdgeInsetsPrimitive',
506
+ },
507
+ },
508
+ ],
509
+ commands: [],
510
+ },
511
+ },
512
+ },
513
+ },
514
+ };
515
+ const ARRAY_PROPS = {
516
+ modules: {
517
+ Slider: {
518
+ type: 'Component',
519
+ components: {
520
+ ArrayPropsNativeComponent: {
521
+ extendsProps: [
522
+ {
523
+ type: 'ReactNativeBuiltInType',
524
+ knownTypeName: 'ReactNativeCoreViewProps',
525
+ },
526
+ ],
527
+ events: [],
528
+ props: [
529
+ {
530
+ name: 'names',
531
+ optional: true,
532
+ typeAnnotation: {
533
+ type: 'ArrayTypeAnnotation',
534
+ elementType: {
535
+ type: 'StringTypeAnnotation',
536
+ },
537
+ },
538
+ },
539
+ {
540
+ name: 'disableds',
541
+ optional: true,
542
+ typeAnnotation: {
543
+ type: 'ArrayTypeAnnotation',
544
+ elementType: {
545
+ type: 'BooleanTypeAnnotation',
546
+ },
547
+ },
548
+ },
549
+ {
550
+ name: 'progress',
551
+ optional: true,
552
+ typeAnnotation: {
553
+ type: 'ArrayTypeAnnotation',
554
+ elementType: {
555
+ type: 'Int32TypeAnnotation',
556
+ },
557
+ },
558
+ },
559
+ {
560
+ name: 'radii',
561
+ optional: true,
562
+ typeAnnotation: {
563
+ type: 'ArrayTypeAnnotation',
564
+ elementType: {
565
+ type: 'FloatTypeAnnotation',
566
+ },
567
+ },
568
+ },
569
+ {
570
+ name: 'colors',
571
+ optional: true,
572
+ typeAnnotation: {
573
+ type: 'ArrayTypeAnnotation',
574
+ elementType: {
575
+ type: 'ReservedPropTypeAnnotation',
576
+ name: 'ColorPrimitive',
577
+ },
578
+ },
579
+ },
580
+ {
581
+ name: 'srcs',
582
+ optional: true,
583
+ typeAnnotation: {
584
+ type: 'ArrayTypeAnnotation',
585
+ elementType: {
586
+ type: 'ReservedPropTypeAnnotation',
587
+ name: 'ImageSourcePrimitive',
588
+ },
589
+ },
590
+ },
591
+ {
592
+ name: 'points',
593
+ optional: true,
594
+ typeAnnotation: {
595
+ type: 'ArrayTypeAnnotation',
596
+ elementType: {
597
+ type: 'ReservedPropTypeAnnotation',
598
+ name: 'PointPrimitive',
599
+ },
600
+ },
601
+ },
602
+ {
603
+ name: 'sizes',
604
+ optional: true,
605
+ typeAnnotation: {
606
+ type: 'ArrayTypeAnnotation',
607
+ elementType: {
608
+ type: 'StringEnumTypeAnnotation',
609
+ default: 'small',
610
+ options: ['small', 'large'],
611
+ },
612
+ },
613
+ },
614
+ {
615
+ name: 'object',
616
+ optional: true,
617
+ typeAnnotation: {
618
+ type: 'ArrayTypeAnnotation',
619
+ elementType: {
620
+ type: 'ObjectTypeAnnotation',
621
+ properties: [
622
+ {
623
+ name: 'stringProp',
624
+ optional: true,
625
+ typeAnnotation: {
626
+ type: 'StringTypeAnnotation',
627
+ default: '',
628
+ },
629
+ },
630
+ ],
631
+ },
632
+ },
633
+ },
634
+ {
635
+ name: 'array',
636
+ optional: true,
637
+ typeAnnotation: {
638
+ type: 'ArrayTypeAnnotation',
639
+ elementType: {
640
+ type: 'ObjectTypeAnnotation',
641
+ properties: [
642
+ {
643
+ // This needs to stay the same as the object above
644
+ // to confirm that the structs are generated
645
+ // with unique non-colliding names
646
+ name: 'object',
647
+ optional: true,
648
+ typeAnnotation: {
649
+ type: 'ArrayTypeAnnotation',
650
+ elementType: {
651
+ type: 'ObjectTypeAnnotation',
652
+ properties: [
653
+ {
654
+ name: 'stringProp',
655
+ optional: true,
656
+ typeAnnotation: {
657
+ type: 'StringTypeAnnotation',
658
+ default: '',
659
+ },
660
+ },
661
+ ],
662
+ },
663
+ },
664
+ },
665
+ ],
666
+ },
667
+ },
668
+ },
669
+ {
670
+ name: 'arrayOfArrayOfObject',
671
+ optional: true,
672
+ typeAnnotation: {
673
+ type: 'ArrayTypeAnnotation',
674
+ elementType: {
675
+ type: 'ArrayTypeAnnotation',
676
+ elementType: {
677
+ type: 'ObjectTypeAnnotation',
678
+ properties: [
679
+ {
680
+ name: 'stringProp',
681
+ optional: true,
682
+ typeAnnotation: {
683
+ type: 'StringTypeAnnotation',
684
+ default: '',
685
+ },
686
+ },
687
+ ],
688
+ },
689
+ },
690
+ },
691
+ },
692
+ ],
693
+ commands: [],
694
+ },
695
+ },
696
+ },
697
+ },
698
+ };
699
+ const ARRAY_PROPS_WITH_NESTED_OBJECT = {
700
+ modules: {
701
+ Slider: {
702
+ type: 'Component',
703
+ components: {
704
+ ArrayPropsNativeComponent: {
705
+ extendsProps: [
706
+ {
707
+ type: 'ReactNativeBuiltInType',
708
+ knownTypeName: 'ReactNativeCoreViewProps',
709
+ },
710
+ ],
711
+ events: [],
712
+ props: [
713
+ {
714
+ name: 'nativePrimitives',
715
+ optional: true,
716
+ typeAnnotation: {
717
+ type: 'ArrayTypeAnnotation',
718
+ elementType: {
719
+ type: 'ObjectTypeAnnotation',
720
+ properties: [
721
+ {
722
+ name: 'colors',
723
+ optional: true,
724
+ typeAnnotation: {
725
+ type: 'ArrayTypeAnnotation',
726
+ elementType: {
727
+ type: 'ReservedPropTypeAnnotation',
728
+ name: 'ColorPrimitive',
729
+ },
730
+ },
731
+ },
732
+ {
733
+ name: 'srcs',
734
+ optional: true,
735
+ typeAnnotation: {
736
+ type: 'ArrayTypeAnnotation',
737
+ elementType: {
738
+ type: 'ReservedPropTypeAnnotation',
739
+ name: 'ImageSourcePrimitive',
740
+ },
741
+ },
742
+ },
743
+ {
744
+ name: 'points',
745
+ optional: true,
746
+ typeAnnotation: {
747
+ type: 'ArrayTypeAnnotation',
748
+ elementType: {
749
+ type: 'ReservedPropTypeAnnotation',
750
+ name: 'PointPrimitive',
751
+ },
752
+ },
753
+ },
754
+ ],
755
+ },
756
+ },
757
+ },
758
+ ],
759
+ commands: [],
760
+ },
761
+ },
762
+ },
763
+ },
764
+ };
765
+ const OBJECT_PROPS = {
766
+ modules: {
767
+ ObjectPropsNativeComponent: {
768
+ type: 'Component',
769
+ components: {
770
+ ObjectProps: {
771
+ extendsProps: [
772
+ {
773
+ type: 'ReactNativeBuiltInType',
774
+ knownTypeName: 'ReactNativeCoreViewProps',
775
+ },
776
+ ],
777
+ events: [],
778
+ props: [
779
+ {
780
+ name: 'objectProp',
781
+ optional: true,
782
+ typeAnnotation: {
783
+ type: 'ObjectTypeAnnotation',
784
+ properties: [
785
+ {
786
+ name: 'stringProp',
787
+ optional: true,
788
+ typeAnnotation: {
789
+ type: 'StringTypeAnnotation',
790
+ default: '',
791
+ },
792
+ },
793
+ {
794
+ name: 'booleanProp',
795
+ optional: true,
796
+ typeAnnotation: {
797
+ type: 'BooleanTypeAnnotation',
798
+ default: false,
799
+ },
800
+ },
801
+ {
802
+ name: 'floatProp',
803
+ optional: true,
804
+ typeAnnotation: {
805
+ type: 'FloatTypeAnnotation',
806
+ default: 0.0,
807
+ },
808
+ },
809
+ {
810
+ name: 'intProp',
811
+ optional: true,
812
+ typeAnnotation: {
813
+ type: 'Int32TypeAnnotation',
814
+ default: 0,
815
+ },
816
+ },
817
+ {
818
+ name: 'stringEnumProp',
819
+ optional: true,
820
+ typeAnnotation: {
821
+ type: 'StringEnumTypeAnnotation',
822
+ default: 'option1',
823
+ options: ['option1'],
824
+ },
825
+ },
826
+ {
827
+ name: 'intEnumProp',
828
+ optional: true,
829
+ typeAnnotation: {
830
+ type: 'Int32EnumTypeAnnotation',
831
+ default: 0,
832
+ options: [0],
833
+ },
834
+ },
835
+ {
836
+ name: 'objectArrayProp',
837
+ optional: false,
838
+ typeAnnotation: {
839
+ type: 'ObjectTypeAnnotation',
840
+ properties: [
841
+ {
842
+ name: 'array',
843
+ optional: true,
844
+ typeAnnotation: {
845
+ type: 'ArrayTypeAnnotation',
846
+ elementType: {
847
+ type: 'StringTypeAnnotation',
848
+ },
849
+ },
850
+ },
851
+ ],
852
+ },
853
+ },
854
+ {
855
+ name: 'objectPrimitiveRequiredProp',
856
+ optional: false,
857
+ typeAnnotation: {
858
+ type: 'ObjectTypeAnnotation',
859
+ properties: [
860
+ {
861
+ name: 'image',
862
+ optional: true,
863
+ typeAnnotation: {
864
+ type: 'ReservedPropTypeAnnotation',
865
+ name: 'ImageSourcePrimitive',
866
+ },
867
+ },
868
+ {
869
+ name: 'color',
870
+ optional: true,
871
+ typeAnnotation: {
872
+ type: 'ReservedPropTypeAnnotation',
873
+ name: 'ColorPrimitive',
874
+ },
875
+ },
876
+ {
877
+ name: 'point',
878
+ optional: true,
879
+ typeAnnotation: {
880
+ type: 'ReservedPropTypeAnnotation',
881
+ name: 'PointPrimitive',
882
+ },
883
+ },
884
+ ],
885
+ },
886
+ },
887
+ {
888
+ name: 'nestedPropA',
889
+ optional: false,
890
+ typeAnnotation: {
891
+ type: 'ObjectTypeAnnotation',
892
+ properties: [
893
+ {
894
+ name: 'nestedPropB',
895
+ optional: false,
896
+ typeAnnotation: {
897
+ type: 'ObjectTypeAnnotation',
898
+ properties: [
899
+ {
900
+ name: 'nestedPropC',
901
+ optional: true,
902
+ typeAnnotation: {
903
+ type: 'StringTypeAnnotation',
904
+ default: '',
905
+ },
906
+ },
907
+ ],
908
+ },
909
+ },
910
+ ],
911
+ },
912
+ },
913
+ {
914
+ name: 'nestedArrayAsProperty',
915
+ optional: false,
916
+ typeAnnotation: {
917
+ type: 'ObjectTypeAnnotation',
918
+ properties: [
919
+ {
920
+ name: 'arrayProp',
921
+ optional: false,
922
+ typeAnnotation: {
923
+ type: 'ArrayTypeAnnotation',
924
+ elementType: {
925
+ type: 'ObjectTypeAnnotation',
926
+ properties: [
927
+ {
928
+ name: 'stringProp',
929
+ optional: false,
930
+ typeAnnotation: {
931
+ type: 'StringTypeAnnotation',
932
+ default: '',
933
+ },
934
+ },
935
+ ],
936
+ },
937
+ },
938
+ },
939
+ ],
940
+ },
941
+ },
942
+ ],
943
+ },
944
+ },
945
+ ],
946
+ commands: [],
947
+ },
948
+ },
949
+ },
950
+ },
951
+ };
952
+ const MULTI_NATIVE_PROP = {
953
+ modules: {
954
+ Slider: {
955
+ type: 'Component',
956
+ components: {
957
+ ImageColorPropNativeComponent: {
958
+ extendsProps: [
959
+ {
960
+ type: 'ReactNativeBuiltInType',
961
+ knownTypeName: 'ReactNativeCoreViewProps',
962
+ },
963
+ ],
964
+ events: [],
965
+ props: [
966
+ {
967
+ name: 'thumbImage',
968
+ optional: true,
969
+ typeAnnotation: {
970
+ type: 'ReservedPropTypeAnnotation',
971
+ name: 'ImageSourcePrimitive',
972
+ },
973
+ },
974
+ {
975
+ name: 'color',
976
+ optional: true,
977
+ typeAnnotation: {
978
+ type: 'ReservedPropTypeAnnotation',
979
+ name: 'ColorPrimitive',
980
+ },
981
+ },
982
+ {
983
+ name: 'thumbTintColor',
984
+ optional: true,
985
+ typeAnnotation: {
986
+ type: 'ReservedPropTypeAnnotation',
987
+ name: 'ColorPrimitive',
988
+ },
989
+ },
990
+ {
991
+ name: 'point',
992
+ optional: true,
993
+ typeAnnotation: {
994
+ type: 'ReservedPropTypeAnnotation',
995
+ name: 'PointPrimitive',
996
+ },
997
+ },
998
+ ],
999
+ commands: [],
1000
+ },
1001
+ },
1002
+ },
1003
+ },
1004
+ };
1005
+ const STRING_ENUM_PROP = {
1006
+ modules: {
1007
+ Switch: {
1008
+ type: 'Component',
1009
+ components: {
1010
+ StringEnumPropsNativeComponent: {
1011
+ extendsProps: [
1012
+ {
1013
+ type: 'ReactNativeBuiltInType',
1014
+ knownTypeName: 'ReactNativeCoreViewProps',
1015
+ },
1016
+ ],
1017
+ events: [],
1018
+ props: [
1019
+ {
1020
+ name: 'alignment',
1021
+ optional: true,
1022
+ typeAnnotation: {
1023
+ type: 'StringEnumTypeAnnotation',
1024
+ default: 'center',
1025
+ options: ['top', 'center', 'bottom-right'],
1026
+ },
1027
+ },
1028
+ ],
1029
+ commands: [],
1030
+ },
1031
+ },
1032
+ },
1033
+ },
1034
+ };
1035
+ const INT32_ENUM_PROP = {
1036
+ modules: {
1037
+ Switch: {
1038
+ type: 'Component',
1039
+ components: {
1040
+ Int32EnumPropsNativeComponent: {
1041
+ extendsProps: [
1042
+ {
1043
+ type: 'ReactNativeBuiltInType',
1044
+ knownTypeName: 'ReactNativeCoreViewProps',
1045
+ },
1046
+ ],
1047
+ events: [],
1048
+ props: [
1049
+ {
1050
+ name: 'maxInterval',
1051
+ optional: true,
1052
+ typeAnnotation: {
1053
+ type: 'Int32EnumTypeAnnotation',
1054
+ default: 0,
1055
+ options: [0, 1, 2],
1056
+ },
1057
+ },
1058
+ ],
1059
+ commands: [],
1060
+ },
1061
+ },
1062
+ },
1063
+ },
1064
+ };
1065
+ const EVENT_PROPS = {
1066
+ modules: {
1067
+ Switch: {
1068
+ type: 'Component',
1069
+ components: {
1070
+ EventsNativeComponent: {
1071
+ extendsProps: [
1072
+ {
1073
+ type: 'ReactNativeBuiltInType',
1074
+ knownTypeName: 'ReactNativeCoreViewProps',
1075
+ },
1076
+ ],
1077
+ events: [
1078
+ {
1079
+ name: 'onChange',
1080
+ optional: true,
1081
+ bubblingType: 'bubble',
1082
+ typeAnnotation: {
1083
+ type: 'EventTypeAnnotation',
1084
+ argument: {
1085
+ type: 'ObjectTypeAnnotation',
1086
+ properties: [
1087
+ {
1088
+ name: 'value',
1089
+ optional: false,
1090
+ typeAnnotation: {
1091
+ type: 'BooleanTypeAnnotation',
1092
+ },
1093
+ },
1094
+ {
1095
+ name: 'source',
1096
+ optional: true,
1097
+ typeAnnotation: {
1098
+ type: 'StringTypeAnnotation',
1099
+ },
1100
+ },
1101
+ {
1102
+ name: 'progress',
1103
+ optional: true,
1104
+ typeAnnotation: {
1105
+ type: 'Int32TypeAnnotation',
1106
+ },
1107
+ },
1108
+ {
1109
+ name: 'scale',
1110
+ optional: true,
1111
+ typeAnnotation: {
1112
+ type: 'FloatTypeAnnotation',
1113
+ },
1114
+ },
1115
+ ],
1116
+ },
1117
+ },
1118
+ },
1119
+ {
1120
+ name: 'onEventDirect',
1121
+ optional: true,
1122
+ bubblingType: 'direct',
1123
+ typeAnnotation: {
1124
+ type: 'EventTypeAnnotation',
1125
+ argument: {
1126
+ type: 'ObjectTypeAnnotation',
1127
+ properties: [
1128
+ {
1129
+ name: 'value',
1130
+ optional: false,
1131
+ typeAnnotation: {
1132
+ type: 'BooleanTypeAnnotation',
1133
+ },
1134
+ },
1135
+ ],
1136
+ },
1137
+ },
1138
+ },
1139
+ {
1140
+ name: 'onOrientationChange',
1141
+ optional: true,
1142
+ bubblingType: 'direct',
1143
+ typeAnnotation: {
1144
+ type: 'EventTypeAnnotation',
1145
+ argument: {
1146
+ type: 'ObjectTypeAnnotation',
1147
+ properties: [
1148
+ {
1149
+ name: 'orientation',
1150
+ optional: false,
1151
+ typeAnnotation: {
1152
+ type: 'StringEnumTypeAnnotation',
1153
+ options: ['landscape', 'portrait'],
1154
+ },
1155
+ },
1156
+ ],
1157
+ },
1158
+ },
1159
+ },
1160
+ {
1161
+ name: 'onEnd',
1162
+ optional: true,
1163
+ bubblingType: 'bubble',
1164
+ typeAnnotation: {
1165
+ type: 'EventTypeAnnotation',
1166
+ },
1167
+ },
1168
+ ],
1169
+ props: [
1170
+ {
1171
+ name: 'disabled',
1172
+ optional: true,
1173
+ typeAnnotation: {
1174
+ type: 'BooleanTypeAnnotation',
1175
+ default: false,
1176
+ },
1177
+ },
1178
+ ],
1179
+ commands: [],
1180
+ },
1181
+ },
1182
+ },
1183
+ },
1184
+ };
1185
+ const EVENT_NESTED_OBJECT_PROPS = {
1186
+ modules: {
1187
+ Switch: {
1188
+ type: 'Component',
1189
+ components: {
1190
+ EventsNestedObjectNativeComponent: {
1191
+ extendsProps: [
1192
+ {
1193
+ type: 'ReactNativeBuiltInType',
1194
+ knownTypeName: 'ReactNativeCoreViewProps',
1195
+ },
1196
+ ],
1197
+ events: [
1198
+ {
1199
+ name: 'onChange',
1200
+ optional: true,
1201
+ bubblingType: 'bubble',
1202
+ typeAnnotation: {
1203
+ type: 'EventTypeAnnotation',
1204
+ argument: {
1205
+ type: 'ObjectTypeAnnotation',
1206
+ properties: [
1207
+ {
1208
+ name: 'location',
1209
+ optional: false,
1210
+ typeAnnotation: {
1211
+ type: 'ObjectTypeAnnotation',
1212
+ properties: [
1213
+ {
1214
+ name: 'source',
1215
+ optional: false,
1216
+ typeAnnotation: {
1217
+ type: 'ObjectTypeAnnotation',
1218
+ properties: [
1219
+ {
1220
+ name: 'url',
1221
+ optional: false,
1222
+ typeAnnotation: {
1223
+ type: 'StringTypeAnnotation',
1224
+ },
1225
+ },
1226
+ ],
1227
+ },
1228
+ },
1229
+ {
1230
+ name: 'x',
1231
+ optional: false,
1232
+ typeAnnotation: {
1233
+ type: 'Int32TypeAnnotation',
1234
+ },
1235
+ },
1236
+ {
1237
+ name: 'y',
1238
+ optional: false,
1239
+ typeAnnotation: {
1240
+ type: 'Int32TypeAnnotation',
1241
+ },
1242
+ },
1243
+ ],
1244
+ },
1245
+ },
1246
+ ],
1247
+ },
1248
+ },
1249
+ },
1250
+ ],
1251
+ props: [
1252
+ {
1253
+ name: 'disabled',
1254
+ optional: true,
1255
+ typeAnnotation: {
1256
+ type: 'BooleanTypeAnnotation',
1257
+ default: false,
1258
+ },
1259
+ },
1260
+ ],
1261
+ commands: [],
1262
+ },
1263
+ },
1264
+ },
1265
+ },
1266
+ };
1267
+ const TWO_COMPONENTS_SAME_FILE = {
1268
+ modules: {
1269
+ MyComponents: {
1270
+ type: 'Component',
1271
+ components: {
1272
+ MultiComponent1NativeComponent: {
1273
+ extendsProps: [
1274
+ {
1275
+ type: 'ReactNativeBuiltInType',
1276
+ knownTypeName: 'ReactNativeCoreViewProps',
1277
+ },
1278
+ ],
1279
+ events: [],
1280
+ props: [
1281
+ {
1282
+ name: 'disabled',
1283
+ optional: true,
1284
+ typeAnnotation: {
1285
+ type: 'BooleanTypeAnnotation',
1286
+ default: false,
1287
+ },
1288
+ },
1289
+ ],
1290
+ commands: [],
1291
+ },
1292
+ MultiComponent2NativeComponent: {
1293
+ extendsProps: [
1294
+ {
1295
+ type: 'ReactNativeBuiltInType',
1296
+ knownTypeName: 'ReactNativeCoreViewProps',
1297
+ },
1298
+ ],
1299
+ events: [],
1300
+ props: [
1301
+ {
1302
+ name: 'disabled',
1303
+ optional: true,
1304
+ typeAnnotation: {
1305
+ type: 'BooleanTypeAnnotation',
1306
+ default: true,
1307
+ },
1308
+ },
1309
+ ],
1310
+ commands: [],
1311
+ },
1312
+ },
1313
+ },
1314
+ },
1315
+ };
1316
+ const TWO_COMPONENTS_DIFFERENT_FILES = {
1317
+ modules: {
1318
+ ComponentFile1: {
1319
+ type: 'Component',
1320
+ components: {
1321
+ MultiFile1NativeComponent: {
1322
+ extendsProps: [
1323
+ {
1324
+ type: 'ReactNativeBuiltInType',
1325
+ knownTypeName: 'ReactNativeCoreViewProps',
1326
+ },
1327
+ ],
1328
+ events: [],
1329
+ props: [
1330
+ {
1331
+ name: 'disabled',
1332
+ optional: true,
1333
+ typeAnnotation: {
1334
+ type: 'BooleanTypeAnnotation',
1335
+ default: false,
1336
+ },
1337
+ },
1338
+ ],
1339
+ commands: [],
1340
+ },
1341
+ },
1342
+ },
1343
+ ComponentFile2: {
1344
+ type: 'Component',
1345
+ components: {
1346
+ MultiFile2NativeComponent: {
1347
+ extendsProps: [
1348
+ {
1349
+ type: 'ReactNativeBuiltInType',
1350
+ knownTypeName: 'ReactNativeCoreViewProps',
1351
+ },
1352
+ ],
1353
+ events: [],
1354
+ props: [
1355
+ {
1356
+ name: 'disabled',
1357
+ optional: true,
1358
+ typeAnnotation: {
1359
+ type: 'BooleanTypeAnnotation',
1360
+ default: true,
1361
+ },
1362
+ },
1363
+ ],
1364
+ commands: [],
1365
+ },
1366
+ },
1367
+ },
1368
+ },
1369
+ };
1370
+ const COMMANDS = {
1371
+ modules: {
1372
+ Switch: {
1373
+ type: 'Component',
1374
+ components: {
1375
+ CommandNativeComponent: {
1376
+ extendsProps: [
1377
+ {
1378
+ type: 'ReactNativeBuiltInType',
1379
+ knownTypeName: 'ReactNativeCoreViewProps',
1380
+ },
1381
+ ],
1382
+ events: [],
1383
+ props: [],
1384
+ commands: [
1385
+ {
1386
+ name: 'flashScrollIndicators',
1387
+ optional: false,
1388
+ typeAnnotation: {
1389
+ type: 'FunctionTypeAnnotation',
1390
+ params: [],
1391
+ returnTypeAnnotation: {
1392
+ type: 'VoidTypeAnnotation',
1393
+ },
1394
+ },
1395
+ },
1396
+ {
1397
+ name: 'allTypes',
1398
+ optional: false,
1399
+ typeAnnotation: {
1400
+ type: 'FunctionTypeAnnotation',
1401
+ params: [
1402
+ {
1403
+ name: 'x',
1404
+ optional: false,
1405
+ typeAnnotation: {
1406
+ type: 'Int32TypeAnnotation',
1407
+ },
1408
+ },
1409
+ {
1410
+ name: 'y',
1411
+ optional: false,
1412
+ typeAnnotation: {
1413
+ type: 'FloatTypeAnnotation',
1414
+ },
1415
+ },
1416
+ {
1417
+ name: 'z',
1418
+ optional: false,
1419
+ typeAnnotation: {
1420
+ type: 'DoubleTypeAnnotation',
1421
+ },
1422
+ },
1423
+ {
1424
+ name: 'message',
1425
+ optional: false,
1426
+ typeAnnotation: {
1427
+ type: 'StringTypeAnnotation',
1428
+ },
1429
+ },
1430
+ {
1431
+ name: 'animated',
1432
+ optional: false,
1433
+ typeAnnotation: {
1434
+ type: 'BooleanTypeAnnotation',
1435
+ },
1436
+ },
1437
+ ],
1438
+ returnTypeAnnotation: {
1439
+ type: 'VoidTypeAnnotation',
1440
+ },
1441
+ },
1442
+ },
1443
+ ],
1444
+ },
1445
+ },
1446
+ },
1447
+ },
1448
+ };
1449
+ const COMMANDS_AND_PROPS = {
1450
+ modules: {
1451
+ Switch: {
1452
+ type: 'Component',
1453
+ components: {
1454
+ CommandNativeComponent: {
1455
+ extendsProps: [
1456
+ {
1457
+ type: 'ReactNativeBuiltInType',
1458
+ knownTypeName: 'ReactNativeCoreViewProps',
1459
+ },
1460
+ ],
1461
+ events: [],
1462
+ props: [
1463
+ {
1464
+ name: 'accessibilityHint',
1465
+ optional: true,
1466
+ typeAnnotation: {
1467
+ type: 'StringTypeAnnotation',
1468
+ default: '',
1469
+ },
1470
+ },
1471
+ ],
1472
+ commands: [
1473
+ {
1474
+ name: 'handleRootTag',
1475
+ optional: false,
1476
+ typeAnnotation: {
1477
+ type: 'FunctionTypeAnnotation',
1478
+ params: [
1479
+ {
1480
+ name: 'rootTag',
1481
+ optional: false,
1482
+ typeAnnotation: {
1483
+ type: 'ReservedTypeAnnotation',
1484
+ name: 'RootTag',
1485
+ },
1486
+ },
1487
+ ],
1488
+ returnTypeAnnotation: {
1489
+ type: 'VoidTypeAnnotation',
1490
+ },
1491
+ },
1492
+ },
1493
+ {
1494
+ name: 'hotspotUpdate',
1495
+ optional: false,
1496
+ typeAnnotation: {
1497
+ type: 'FunctionTypeAnnotation',
1498
+ params: [
1499
+ {
1500
+ name: 'x',
1501
+ optional: false,
1502
+ typeAnnotation: {
1503
+ type: 'Int32TypeAnnotation',
1504
+ },
1505
+ },
1506
+ {
1507
+ name: 'y',
1508
+ optional: false,
1509
+ typeAnnotation: {
1510
+ type: 'Int32TypeAnnotation',
1511
+ },
1512
+ },
1513
+ ],
1514
+ returnTypeAnnotation: {
1515
+ type: 'VoidTypeAnnotation',
1516
+ },
1517
+ },
1518
+ },
1519
+ ],
1520
+ },
1521
+ },
1522
+ },
1523
+ },
1524
+ };
1525
+ const EXCLUDE_ANDROID = {
1526
+ modules: {
1527
+ ExcludedAndroid: {
1528
+ type: 'Component',
1529
+ components: {
1530
+ ExcludedAndroidComponent: {
1531
+ excludedPlatforms: ['android'],
1532
+ extendsProps: [
1533
+ {
1534
+ type: 'ReactNativeBuiltInType',
1535
+ knownTypeName: 'ReactNativeCoreViewProps',
1536
+ },
1537
+ ],
1538
+ events: [],
1539
+ props: [],
1540
+ commands: [],
1541
+ },
1542
+ },
1543
+ },
1544
+ },
1545
+ };
1546
+ const EXCLUDE_ANDROID_IOS = {
1547
+ modules: {
1548
+ ExcludedAndroidIos: {
1549
+ type: 'Component',
1550
+ components: {
1551
+ ExcludedAndroidIosComponent: {
1552
+ excludedPlatforms: ['android', 'iOS'],
1553
+ extendsProps: [
1554
+ {
1555
+ type: 'ReactNativeBuiltInType',
1556
+ knownTypeName: 'ReactNativeCoreViewProps',
1557
+ },
1558
+ ],
1559
+ events: [],
1560
+ props: [],
1561
+ commands: [],
1562
+ },
1563
+ },
1564
+ },
1565
+ },
1566
+ };
1567
+ const EXCLUDE_IOS_TWO_COMPONENTS_DIFFERENT_FILES = {
1568
+ modules: {
1569
+ ComponentFile1: {
1570
+ type: 'Component',
1571
+ components: {
1572
+ ExcludedIosComponent: {
1573
+ excludedPlatforms: ['iOS'],
1574
+ extendsProps: [
1575
+ {
1576
+ type: 'ReactNativeBuiltInType',
1577
+ knownTypeName: 'ReactNativeCoreViewProps',
1578
+ },
1579
+ ],
1580
+ events: [],
1581
+ props: [],
1582
+ commands: [],
1583
+ },
1584
+ },
1585
+ },
1586
+ ComponentFile2: {
1587
+ type: 'Component',
1588
+ components: {
1589
+ MultiFileIncludedNativeComponent: {
1590
+ extendsProps: [
1591
+ {
1592
+ type: 'ReactNativeBuiltInType',
1593
+ knownTypeName: 'ReactNativeCoreViewProps',
1594
+ },
1595
+ ],
1596
+ events: [],
1597
+ props: [
1598
+ {
1599
+ name: 'disabled',
1600
+ optional: true,
1601
+ typeAnnotation: {
1602
+ type: 'BooleanTypeAnnotation',
1603
+ default: true,
1604
+ },
1605
+ },
1606
+ ],
1607
+ commands: [],
1608
+ },
1609
+ },
1610
+ },
1611
+ },
1612
+ };
1613
+ module.exports = {
1614
+ NO_PROPS_NO_EVENTS,
1615
+ INTERFACE_ONLY,
1616
+ BOOLEAN_PROP,
1617
+ STRING_PROP,
1618
+ INTEGER_PROPS,
1619
+ DOUBLE_PROPS,
1620
+ FLOAT_PROPS,
1621
+ COLOR_PROP,
1622
+ IMAGE_PROP,
1623
+ POINT_PROP,
1624
+ INSETS_PROP,
1625
+ ARRAY_PROPS,
1626
+ ARRAY_PROPS_WITH_NESTED_OBJECT,
1627
+ OBJECT_PROPS,
1628
+ MULTI_NATIVE_PROP,
1629
+ STRING_ENUM_PROP,
1630
+ INT32_ENUM_PROP,
1631
+ EVENT_PROPS,
1632
+ EVENTS_WITH_PAPER_NAME,
1633
+ EVENT_NESTED_OBJECT_PROPS,
1634
+ TWO_COMPONENTS_SAME_FILE,
1635
+ TWO_COMPONENTS_DIFFERENT_FILES,
1636
+ COMMANDS,
1637
+ COMMANDS_AND_PROPS,
1638
+ EXCLUDE_ANDROID,
1639
+ EXCLUDE_ANDROID_IOS,
1640
+ EXCLUDE_IOS_TWO_COMPONENTS_DIFFERENT_FILES,
1641
+ };