@react-native/codegen 0.72.2 → 0.72.4

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 (77) hide show
  1. package/lib/CodegenSchema.d.ts +10 -10
  2. package/lib/CodegenSchema.js.flow +6 -1
  3. package/lib/SchemaValidator.d.ts +1 -1
  4. package/lib/generators/RNCodegen.d.ts +98 -0
  5. package/lib/generators/RNCodegen.js +33 -4
  6. package/lib/generators/RNCodegen.js.flow +35 -4
  7. package/lib/generators/components/ComponentsGeneratorUtils.js +2 -0
  8. package/lib/generators/components/ComponentsGeneratorUtils.js.flow +2 -0
  9. package/lib/generators/components/CppHelpers.js +2 -0
  10. package/lib/generators/components/CppHelpers.js.flow +2 -0
  11. package/lib/generators/components/GeneratePropsH.js +2 -0
  12. package/lib/generators/components/GeneratePropsH.js.flow +2 -0
  13. package/lib/generators/components/GeneratePropsJavaDelegate.js +2 -0
  14. package/lib/generators/components/GeneratePropsJavaDelegate.js.flow +2 -0
  15. package/lib/generators/components/GeneratePropsJavaInterface.js +2 -0
  16. package/lib/generators/components/GeneratePropsJavaInterface.js.flow +2 -0
  17. package/lib/generators/components/GeneratePropsJavaPojo/PojoCollector.js.flow +3 -1
  18. package/lib/generators/components/GeneratePropsJavaPojo/serializePojo.js +5 -0
  19. package/lib/generators/components/GeneratePropsJavaPojo/serializePojo.js.flow +6 -0
  20. package/lib/generators/components/GenerateViewConfigJs.js +1 -0
  21. package/lib/generators/components/GenerateViewConfigJs.js.flow +1 -0
  22. package/lib/generators/components/JavaHelpers.js +7 -0
  23. package/lib/generators/components/JavaHelpers.js.flow +8 -0
  24. package/lib/generators/components/__test_fixtures__/fixtures.js +29 -0
  25. package/lib/generators/components/__test_fixtures__/fixtures.js.flow +30 -0
  26. package/lib/parsers/error-utils.js +50 -15
  27. package/lib/parsers/error-utils.js.flow +57 -15
  28. package/lib/parsers/flow/components/__test_fixtures__/fixtures.js +5 -1
  29. package/lib/parsers/flow/components/__test_fixtures__/fixtures.js.flow +5 -1
  30. package/lib/parsers/flow/components/componentsUtils.js +4 -0
  31. package/lib/parsers/flow/components/componentsUtils.js.flow +4 -0
  32. package/lib/parsers/flow/components/index.js +27 -126
  33. package/lib/parsers/flow/components/index.js.flow +22 -52
  34. package/lib/parsers/flow/modules/__test_fixtures__/fixtures.js +4 -4
  35. package/lib/parsers/flow/modules/__test_fixtures__/fixtures.js.flow +4 -4
  36. package/lib/parsers/flow/modules/index.js +41 -317
  37. package/lib/parsers/flow/modules/index.js.flow +19 -247
  38. package/lib/parsers/flow/parser.js +119 -12
  39. package/lib/parsers/flow/parser.js.flow +124 -3
  40. package/lib/parsers/flow/utils.js +0 -38
  41. package/lib/parsers/flow/utils.js.flow +0 -38
  42. package/lib/parsers/parser.d.ts +2 -2
  43. package/lib/parsers/parser.js.flow +84 -0
  44. package/lib/parsers/parserMock.js +58 -0
  45. package/lib/parsers/parserMock.js.flow +72 -0
  46. package/lib/parsers/parsers-commons.js +362 -5
  47. package/lib/parsers/parsers-commons.js.flow +351 -8
  48. package/lib/parsers/parsers-primitives.js +119 -3
  49. package/lib/parsers/parsers-primitives.js.flow +128 -3
  50. package/lib/parsers/schema/index.d.ts +1 -1
  51. package/lib/parsers/{typescript/components/schema.js.flow → schema.js.flow} +1 -1
  52. package/lib/parsers/typescript/components/__test_fixtures__/fixtures.js +5 -1
  53. package/lib/parsers/typescript/components/__test_fixtures__/fixtures.js.flow +5 -1
  54. package/lib/parsers/typescript/components/componentsUtils.js +8 -0
  55. package/lib/parsers/typescript/components/componentsUtils.js.flow +8 -0
  56. package/lib/parsers/typescript/components/index.js +28 -127
  57. package/lib/parsers/typescript/components/index.js.flow +24 -54
  58. package/lib/parsers/typescript/modules/index.js +103 -434
  59. package/lib/parsers/typescript/modules/index.js.flow +85 -299
  60. package/lib/parsers/typescript/parser.js +113 -12
  61. package/lib/parsers/typescript/parser.js.flow +115 -3
  62. package/lib/parsers/typescript/utils.js +0 -31
  63. package/lib/parsers/typescript/utils.js.flow +0 -31
  64. package/lib/parsers/utils.js +4 -0
  65. package/lib/parsers/utils.js.flow +3 -0
  66. package/package.json +1 -1
  67. package/lib/parsers/flow/Visitor.js +0 -37
  68. package/lib/parsers/flow/Visitor.js.flow +0 -41
  69. package/lib/parsers/flow/components/options.js +0 -72
  70. package/lib/parsers/flow/components/options.js.flow +0 -87
  71. package/lib/parsers/flow/components/schema.js +0 -106
  72. package/lib/parsers/flow/components/schema.js.flow +0 -62
  73. package/lib/parsers/typescript/Visitor.js +0 -42
  74. package/lib/parsers/typescript/Visitor.js.flow +0 -47
  75. package/lib/parsers/typescript/components/options.js +0 -72
  76. package/lib/parsers/typescript/components/options.js.flow +0 -87
  77. /package/lib/parsers/{typescript/components/schema.js → schema.js} +0 -0
@@ -10,192 +10,34 @@
10
10
 
11
11
  'use strict';
12
12
 
13
- function ownKeys(object, enumerableOnly) {
14
- var keys = Object.keys(object);
15
- if (Object.getOwnPropertySymbols) {
16
- var symbols = Object.getOwnPropertySymbols(object);
17
- enumerableOnly &&
18
- (symbols = symbols.filter(function (sym) {
19
- return Object.getOwnPropertyDescriptor(object, sym).enumerable;
20
- })),
21
- keys.push.apply(keys, symbols);
22
- }
23
- return keys;
24
- }
25
- function _objectSpread(target) {
26
- for (var i = 1; i < arguments.length; i++) {
27
- var source = null != arguments[i] ? arguments[i] : {};
28
- i % 2
29
- ? ownKeys(Object(source), !0).forEach(function (key) {
30
- _defineProperty(target, key, source[key]);
31
- })
32
- : Object.getOwnPropertyDescriptors
33
- ? Object.defineProperties(
34
- target,
35
- Object.getOwnPropertyDescriptors(source),
36
- )
37
- : ownKeys(Object(source)).forEach(function (key) {
38
- Object.defineProperty(
39
- target,
40
- key,
41
- Object.getOwnPropertyDescriptor(source, key),
42
- );
43
- });
44
- }
45
- return target;
46
- }
47
- function _defineProperty(obj, key, value) {
48
- key = _toPropertyKey(key);
49
- if (key in obj) {
50
- Object.defineProperty(obj, key, {
51
- value: value,
52
- enumerable: true,
53
- configurable: true,
54
- writable: true,
55
- });
56
- } else {
57
- obj[key] = value;
58
- }
59
- return obj;
60
- }
61
- function _toPropertyKey(arg) {
62
- var key = _toPrimitive(arg, 'string');
63
- return typeof key === 'symbol' ? key : String(key);
64
- }
65
- function _toPrimitive(input, hint) {
66
- if (typeof input !== 'object' || input === null) return input;
67
- var prim = input[Symbol.toPrimitive];
68
- if (prim !== undefined) {
69
- var res = prim.call(input, hint || 'default');
70
- if (typeof res !== 'object') return res;
71
- throw new TypeError('@@toPrimitive must return a primitive value.');
72
- }
73
- return (hint === 'string' ? String : Number)(input);
74
- }
75
- function _slicedToArray(arr, i) {
76
- return (
77
- _arrayWithHoles(arr) ||
78
- _iterableToArrayLimit(arr, i) ||
79
- _unsupportedIterableToArray(arr, i) ||
80
- _nonIterableRest()
81
- );
82
- }
83
- function _nonIterableRest() {
84
- throw new TypeError(
85
- 'Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.',
86
- );
87
- }
88
- function _unsupportedIterableToArray(o, minLen) {
89
- if (!o) return;
90
- if (typeof o === 'string') return _arrayLikeToArray(o, minLen);
91
- var n = Object.prototype.toString.call(o).slice(8, -1);
92
- if (n === 'Object' && o.constructor) n = o.constructor.name;
93
- if (n === 'Map' || n === 'Set') return Array.from(o);
94
- if (n === 'Arguments' || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))
95
- return _arrayLikeToArray(o, minLen);
96
- }
97
- function _arrayLikeToArray(arr, len) {
98
- if (len == null || len > arr.length) len = arr.length;
99
- for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];
100
- return arr2;
101
- }
102
- function _iterableToArrayLimit(arr, i) {
103
- var _i =
104
- null == arr
105
- ? null
106
- : ('undefined' != typeof Symbol && arr[Symbol.iterator]) ||
107
- arr['@@iterator'];
108
- if (null != _i) {
109
- var _s,
110
- _e,
111
- _x,
112
- _r,
113
- _arr = [],
114
- _n = !0,
115
- _d = !1;
116
- try {
117
- if (((_x = (_i = _i.call(arr)).next), 0 === i)) {
118
- if (Object(_i) !== _i) return;
119
- _n = !1;
120
- } else
121
- for (
122
- ;
123
- !(_n = (_s = _x.call(_i)).done) &&
124
- (_arr.push(_s.value), _arr.length !== i);
125
- _n = !0
126
- );
127
- } catch (err) {
128
- (_d = !0), (_e = err);
129
- } finally {
130
- try {
131
- if (!_n && null != _i.return && ((_r = _i.return()), Object(_r) !== _r))
132
- return;
133
- } finally {
134
- if (_d) throw _e;
135
- }
136
- }
137
- return _arr;
138
- }
139
- }
140
- function _arrayWithHoles(arr) {
141
- if (Array.isArray(arr)) return arr;
142
- }
143
13
  const _require = require('../parseTopLevelType'),
144
14
  flattenIntersectionType = _require.flattenIntersectionType;
145
15
  const _require2 = require('../components/componentsUtils'),
146
16
  flattenProperties = _require2.flattenProperties;
147
- const _require3 = require('../../utils'),
148
- visit = _require3.visit,
149
- isModuleRegistryCall = _require3.isModuleRegistryCall,
150
- verifyPlatforms = _require3.verifyPlatforms;
151
- const _require4 = require('../utils'),
152
- resolveTypeAnnotation = _require4.resolveTypeAnnotation,
153
- getTypes = _require4.getTypes;
154
- const _require5 = require('../../parsers-commons'),
155
- parseObjectProperty = _require5.parseObjectProperty,
156
- buildPropertySchema = _require5.buildPropertySchema;
157
- const _require6 = require('../../parsers-primitives'),
158
- typeEnumResolution = _require6.typeEnumResolution;
159
- const _require7 = require('../../parsers-primitives'),
160
- emitArrayType = _require7.emitArrayType,
161
- emitBoolean = _require7.emitBoolean,
162
- emitDouble = _require7.emitDouble,
163
- emitFloat = _require7.emitFloat,
164
- emitFunction = _require7.emitFunction,
165
- emitNumber = _require7.emitNumber,
166
- emitInt32 = _require7.emitInt32,
167
- emitGenericObject = _require7.emitGenericObject,
168
- emitObject = _require7.emitObject,
169
- emitPromise = _require7.emitPromise,
170
- emitRootTag = _require7.emitRootTag,
171
- emitVoid = _require7.emitVoid,
172
- emitString = _require7.emitString,
173
- emitStringish = _require7.emitStringish,
174
- emitMixed = _require7.emitMixed,
175
- emitUnion = _require7.emitUnion,
176
- typeAliasResolution = _require7.typeAliasResolution,
177
- translateArrayTypeAnnotation = _require7.translateArrayTypeAnnotation;
178
- const _require8 = require('../../errors'),
179
- UnsupportedGenericParserError = _require8.UnsupportedGenericParserError,
17
+ const _require3 = require('../utils'),
18
+ resolveTypeAnnotation = _require3.resolveTypeAnnotation;
19
+ const _require4 = require('../../parsers-commons'),
20
+ parseObjectProperty = _require4.parseObjectProperty;
21
+ const _require5 = require('../../parsers-primitives'),
22
+ emitArrayType = _require5.emitArrayType,
23
+ emitBoolean = _require5.emitBoolean,
24
+ emitFunction = _require5.emitFunction,
25
+ emitNumber = _require5.emitNumber,
26
+ emitGenericObject = _require5.emitGenericObject,
27
+ emitPromise = _require5.emitPromise,
28
+ emitRootTag = _require5.emitRootTag,
29
+ emitVoid = _require5.emitVoid,
30
+ emitString = _require5.emitString,
31
+ emitMixed = _require5.emitMixed,
32
+ emitUnion = _require5.emitUnion,
33
+ emitCommonTypes = _require5.emitCommonTypes,
34
+ typeAliasResolution = _require5.typeAliasResolution,
35
+ typeEnumResolution = _require5.typeEnumResolution,
36
+ translateArrayTypeAnnotation = _require5.translateArrayTypeAnnotation;
37
+ const _require6 = require('../../errors'),
38
+ UnsupportedGenericParserError = _require6.UnsupportedGenericParserError,
180
39
  UnsupportedTypeAnnotationParserError =
181
- _require8.UnsupportedTypeAnnotationParserError,
182
- IncorrectModuleRegistryCallArgumentTypeParserError =
183
- _require8.IncorrectModuleRegistryCallArgumentTypeParserError;
184
- const _require9 = require('../../error-utils'),
185
- throwIfUntypedModule = _require9.throwIfUntypedModule,
186
- throwIfUnusedModuleInterfaceParserError =
187
- _require9.throwIfUnusedModuleInterfaceParserError,
188
- throwIfModuleInterfaceNotFound = _require9.throwIfModuleInterfaceNotFound,
189
- throwIfModuleInterfaceIsMisnamed = _require9.throwIfModuleInterfaceIsMisnamed,
190
- throwIfWrongNumberOfCallExpressionArgs =
191
- _require9.throwIfWrongNumberOfCallExpressionArgs,
192
- throwIfMoreThanOneModuleRegistryCalls =
193
- _require9.throwIfMoreThanOneModuleRegistryCalls,
194
- throwIfMoreThanOneModuleInterfaceParserError =
195
- _require9.throwIfMoreThanOneModuleInterfaceParserError,
196
- throwIfIncorrectModuleRegistryCallTypeParameterParserError =
197
- _require9.throwIfIncorrectModuleRegistryCallTypeParameterParserError;
198
- const language = 'TypeScript';
40
+ _require6.UnsupportedTypeAnnotationParserError;
199
41
  function translateObjectTypeAnnotation(
200
42
  hasteModuleName,
201
43
  /**
@@ -251,6 +93,73 @@ function translateObjectTypeAnnotation(
251
93
  nullable,
252
94
  );
253
95
  }
96
+ function translateTypeReferenceAnnotation(
97
+ typeName,
98
+ nullable,
99
+ typeAnnotation,
100
+ hasteModuleName,
101
+ types,
102
+ aliasMap,
103
+ enumMap,
104
+ tryParse,
105
+ cxxOnly,
106
+ parser,
107
+ ) {
108
+ switch (typeName) {
109
+ case 'RootTag': {
110
+ return emitRootTag(nullable);
111
+ }
112
+ case 'Promise': {
113
+ return emitPromise(
114
+ hasteModuleName,
115
+ typeAnnotation,
116
+ parser,
117
+ nullable,
118
+ types,
119
+ aliasMap,
120
+ enumMap,
121
+ tryParse,
122
+ cxxOnly,
123
+ translateTypeAnnotation,
124
+ );
125
+ }
126
+ case 'Array':
127
+ case 'ReadonlyArray': {
128
+ return emitArrayType(
129
+ hasteModuleName,
130
+ typeAnnotation,
131
+ parser,
132
+ types,
133
+ aliasMap,
134
+ enumMap,
135
+ cxxOnly,
136
+ nullable,
137
+ translateTypeAnnotation,
138
+ );
139
+ }
140
+ default: {
141
+ const commonType = emitCommonTypes(
142
+ hasteModuleName,
143
+ types,
144
+ typeAnnotation,
145
+ aliasMap,
146
+ enumMap,
147
+ tryParse,
148
+ cxxOnly,
149
+ nullable,
150
+ parser,
151
+ );
152
+ if (!commonType) {
153
+ throw new UnsupportedGenericParserError(
154
+ hasteModuleName,
155
+ typeAnnotation,
156
+ parser,
157
+ );
158
+ }
159
+ return commonType;
160
+ }
161
+ }
162
+ }
254
163
  function translateTypeAnnotation(
255
164
  hasteModuleName,
256
165
  /**
@@ -312,95 +221,18 @@ function translateTypeAnnotation(
312
221
  }
313
222
  }
314
223
  case 'TSTypeReference': {
315
- switch (typeAnnotation.typeName.name) {
316
- case 'RootTag': {
317
- return emitRootTag(nullable);
318
- }
319
- case 'Promise': {
320
- return emitPromise(
321
- hasteModuleName,
322
- typeAnnotation,
323
- parser,
324
- nullable,
325
- types,
326
- aliasMap,
327
- enumMap,
328
- tryParse,
329
- cxxOnly,
330
- translateTypeAnnotation,
331
- );
332
- }
333
- case 'Array':
334
- case 'ReadonlyArray': {
335
- return emitArrayType(
336
- hasteModuleName,
337
- typeAnnotation,
338
- parser,
339
- types,
340
- aliasMap,
341
- enumMap,
342
- cxxOnly,
343
- nullable,
344
- translateTypeAnnotation,
345
- );
346
- }
347
- case 'Stringish': {
348
- return emitStringish(nullable);
349
- }
350
- case 'Int32': {
351
- return emitInt32(nullable);
352
- }
353
- case 'Double': {
354
- return emitDouble(nullable);
355
- }
356
- case 'Float': {
357
- return emitFloat(nullable);
358
- }
359
- case 'UnsafeObject':
360
- case 'Object': {
361
- return emitGenericObject(nullable);
362
- }
363
- case 'Partial': {
364
- if (typeAnnotation.typeParameters.params.length !== 1) {
365
- throw new Error(
366
- 'Partials only support annotating exactly one parameter.',
367
- );
368
- }
369
- const annotatedElement =
370
- types[typeAnnotation.typeParameters.params[0].typeName.name];
371
- if (!annotatedElement) {
372
- throw new Error(
373
- 'Partials only support annotating a type parameter.',
374
- );
375
- }
376
- const properties = annotatedElement.typeAnnotation.members.map(
377
- member => {
378
- return {
379
- name: member.key.name,
380
- optional: true,
381
- typeAnnotation: translateTypeAnnotation(
382
- hasteModuleName,
383
- member.typeAnnotation.typeAnnotation,
384
- types,
385
- aliasMap,
386
- enumMap,
387
- tryParse,
388
- cxxOnly,
389
- parser,
390
- ),
391
- };
392
- },
393
- );
394
- return emitObject(nullable, properties);
395
- }
396
- default: {
397
- throw new UnsupportedGenericParserError(
398
- hasteModuleName,
399
- typeAnnotation,
400
- parser,
401
- );
402
- }
403
- }
224
+ return translateTypeReferenceAnnotation(
225
+ typeAnnotation.typeName.name,
226
+ nullable,
227
+ typeAnnotation,
228
+ hasteModuleName,
229
+ types,
230
+ aliasMap,
231
+ enumMap,
232
+ tryParse,
233
+ cxxOnly,
234
+ parser,
235
+ );
404
236
  }
405
237
  case 'TSInterfaceDeclaration': {
406
238
  var _typeAnnotation$exten;
@@ -505,7 +337,6 @@ function translateTypeAnnotation(
505
337
  typeResolutionStatus,
506
338
  nullable,
507
339
  hasteModuleName,
508
- language,
509
340
  enumMap,
510
341
  parser,
511
342
  );
@@ -550,173 +381,11 @@ function translateTypeAnnotation(
550
381
  throw new UnsupportedTypeAnnotationParserError(
551
382
  hasteModuleName,
552
383
  typeAnnotation,
553
- language,
384
+ parser.language(),
554
385
  );
555
386
  }
556
387
  }
557
388
  }
558
- function isModuleInterface(node) {
559
- var _node$extends;
560
- return (
561
- node.type === 'TSInterfaceDeclaration' &&
562
- ((_node$extends = node.extends) === null || _node$extends === void 0
563
- ? void 0
564
- : _node$extends.length) === 1 &&
565
- node.extends[0].type === 'TSExpressionWithTypeArguments' &&
566
- node.extends[0].expression.name === 'TurboModule'
567
- );
568
- }
569
- function buildModuleSchema(
570
- hasteModuleName,
571
- /**
572
- * TODO(T108222691): Use flow-types for @babel/parser
573
- */
574
- ast,
575
- tryParse,
576
- parser,
577
- ) {
578
- const types = getTypes(ast);
579
- const moduleSpecs = Object.values(types).filter(isModuleInterface);
580
- throwIfModuleInterfaceNotFound(
581
- moduleSpecs.length,
582
- hasteModuleName,
583
- ast,
584
- language,
585
- );
586
- throwIfMoreThanOneModuleInterfaceParserError(
587
- hasteModuleName,
588
- moduleSpecs,
589
- language,
590
- );
591
- const _moduleSpecs = _slicedToArray(moduleSpecs, 1),
592
- moduleSpec = _moduleSpecs[0];
593
- throwIfModuleInterfaceIsMisnamed(hasteModuleName, moduleSpec.id, language);
594
-
595
- // Parse Module Name
596
- const moduleName = (() => {
597
- const callExpressions = [];
598
- visit(ast, {
599
- CallExpression(node) {
600
- if (isModuleRegistryCall(node)) {
601
- callExpressions.push(node);
602
- }
603
- },
604
- });
605
- throwIfUnusedModuleInterfaceParserError(
606
- hasteModuleName,
607
- moduleSpec,
608
- callExpressions,
609
- );
610
- throwIfMoreThanOneModuleRegistryCalls(
611
- hasteModuleName,
612
- callExpressions,
613
- callExpressions.length,
614
- );
615
- const callExpression = callExpressions[0];
616
- const typeParameters = callExpression.typeParameters;
617
- const methodName = callExpression.callee.property.name;
618
- throwIfWrongNumberOfCallExpressionArgs(
619
- hasteModuleName,
620
- callExpression,
621
- methodName,
622
- callExpression.arguments.length,
623
- );
624
- if (callExpression.arguments[0].type !== 'StringLiteral') {
625
- const type = callExpression.arguments[0].type;
626
- throw new IncorrectModuleRegistryCallArgumentTypeParserError(
627
- hasteModuleName,
628
- callExpression.arguments[0],
629
- methodName,
630
- type,
631
- );
632
- }
633
- const $moduleName = callExpression.arguments[0].value;
634
- throwIfUntypedModule(
635
- typeParameters,
636
- hasteModuleName,
637
- callExpression,
638
- methodName,
639
- $moduleName,
640
- );
641
- throwIfIncorrectModuleRegistryCallTypeParameterParserError(
642
- hasteModuleName,
643
- typeParameters,
644
- methodName,
645
- $moduleName,
646
- parser,
647
- );
648
- return $moduleName;
649
- })();
650
-
651
- // Some module names use platform suffix to indicate platform-exclusive modules.
652
- // Eventually this should be made explicit in the Flow type itself.
653
- // Also check the hasteModuleName for platform suffix.
654
- // Note: this shape is consistent with ComponentSchema.
655
- const _verifyPlatforms = verifyPlatforms(hasteModuleName, moduleName),
656
- cxxOnly = _verifyPlatforms.cxxOnly,
657
- excludedPlatforms = _verifyPlatforms.excludedPlatforms;
658
-
659
- // $FlowFixMe[missing-type-arg]
660
- return moduleSpec.body.body
661
- .filter(
662
- property =>
663
- property.type === 'TSMethodSignature' ||
664
- property.type === 'TSPropertySignature',
665
- )
666
- .map(property => {
667
- const aliasMap = {};
668
- const enumMap = {};
669
- return tryParse(() => ({
670
- aliasMap: aliasMap,
671
- enumMap: enumMap,
672
- propertyShape: buildPropertySchema(
673
- hasteModuleName,
674
- property,
675
- types,
676
- aliasMap,
677
- enumMap,
678
- tryParse,
679
- cxxOnly,
680
- resolveTypeAnnotation,
681
- translateTypeAnnotation,
682
- parser,
683
- ),
684
- }));
685
- })
686
- .filter(Boolean)
687
- .reduce(
688
- (moduleSchema, {aliasMap, enumMap, propertyShape}) => {
689
- return {
690
- type: 'NativeModule',
691
- aliasMap: _objectSpread(
692
- _objectSpread({}, moduleSchema.aliasMap),
693
- aliasMap,
694
- ),
695
- enumMap: _objectSpread(
696
- _objectSpread({}, moduleSchema.enumMap),
697
- enumMap,
698
- ),
699
- spec: {
700
- properties: [...moduleSchema.spec.properties, propertyShape],
701
- },
702
- moduleName: moduleSchema.moduleName,
703
- excludedPlatforms: moduleSchema.excludedPlatforms,
704
- };
705
- },
706
- {
707
- type: 'NativeModule',
708
- aliasMap: {},
709
- enumMap: {},
710
- spec: {
711
- properties: [],
712
- },
713
- moduleName: moduleName,
714
- excludedPlatforms:
715
- excludedPlatforms.length !== 0 ? [...excludedPlatforms] : undefined,
716
- },
717
- );
718
- }
719
389
  module.exports = {
720
- buildModuleSchema,
721
390
  typeScriptTranslateTypeAnnotation: translateTypeAnnotation,
722
391
  };