@react-native/codegen 0.72.3 → 0.73.0
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.
- package/lib/CodegenSchema.d.ts +10 -10
- package/lib/CodegenSchema.js.flow +6 -1
- package/lib/SchemaValidator.d.ts +1 -1
- package/lib/generators/RNCodegen.d.ts +98 -0
- package/lib/generators/RNCodegen.js +33 -4
- package/lib/generators/RNCodegen.js.flow +35 -4
- package/lib/generators/components/ComponentsGeneratorUtils.js +2 -0
- package/lib/generators/components/ComponentsGeneratorUtils.js.flow +2 -0
- package/lib/generators/components/CppHelpers.js +2 -0
- package/lib/generators/components/CppHelpers.js.flow +2 -0
- package/lib/generators/components/GenerateEventEmitterCpp.js +33 -44
- package/lib/generators/components/GenerateEventEmitterCpp.js.flow +35 -44
- package/lib/generators/components/GenerateEventEmitterH.js +0 -2
- package/lib/generators/components/GenerateEventEmitterH.js.flow +0 -2
- package/lib/generators/components/GeneratePropsH.js +2 -0
- package/lib/generators/components/GeneratePropsH.js.flow +2 -0
- package/lib/generators/components/GeneratePropsJavaDelegate.js +2 -0
- package/lib/generators/components/GeneratePropsJavaDelegate.js.flow +2 -0
- package/lib/generators/components/GeneratePropsJavaInterface.js +2 -0
- package/lib/generators/components/GeneratePropsJavaInterface.js.flow +2 -0
- package/lib/generators/components/GeneratePropsJavaPojo/PojoCollector.js.flow +3 -1
- package/lib/generators/components/GeneratePropsJavaPojo/serializePojo.js +5 -0
- package/lib/generators/components/GeneratePropsJavaPojo/serializePojo.js.flow +6 -0
- package/lib/generators/components/GenerateViewConfigJs.js +1 -0
- package/lib/generators/components/GenerateViewConfigJs.js.flow +1 -0
- package/lib/generators/components/JavaHelpers.js +7 -0
- package/lib/generators/components/JavaHelpers.js.flow +8 -0
- package/lib/generators/components/__test_fixtures__/fixtures.js +29 -0
- package/lib/generators/components/__test_fixtures__/fixtures.js.flow +30 -0
- package/lib/generators/modules/GenerateModuleCpp.js +3 -3
- package/lib/generators/modules/GenerateModuleCpp.js.flow +3 -3
- package/lib/generators/modules/GenerateModuleJavaSpec.js +1 -2
- package/lib/generators/modules/GenerateModuleJavaSpec.js.flow +1 -2
- package/lib/parsers/error-utils.js +9 -15
- package/lib/parsers/error-utils.js.flow +12 -15
- package/lib/parsers/flow/components/__test_fixtures__/fixtures.js +5 -1
- package/lib/parsers/flow/components/__test_fixtures__/fixtures.js.flow +5 -1
- package/lib/parsers/flow/components/componentsUtils.js +4 -0
- package/lib/parsers/flow/components/componentsUtils.js.flow +4 -0
- package/lib/parsers/flow/components/index.js +35 -168
- package/lib/parsers/flow/components/index.js.flow +33 -107
- package/lib/parsers/flow/modules/__test_fixtures__/fixtures.js +4 -4
- package/lib/parsers/flow/modules/__test_fixtures__/fixtures.js.flow +4 -4
- package/lib/parsers/flow/modules/index.js +51 -327
- package/lib/parsers/flow/modules/index.js.flow +34 -258
- package/lib/parsers/flow/parser.js +84 -13
- package/lib/parsers/flow/parser.js.flow +80 -4
- package/lib/parsers/parser.d.ts +2 -2
- package/lib/parsers/parser.js.flow +84 -3
- package/lib/parsers/parserMock.js +53 -0
- package/lib/parsers/parserMock.js.flow +64 -1
- package/lib/parsers/parsers-commons.js +397 -4
- package/lib/parsers/parsers-commons.js.flow +391 -4
- package/lib/parsers/parsers-primitives.js +121 -3
- package/lib/parsers/parsers-primitives.js.flow +134 -3
- package/lib/parsers/schema/index.d.ts +1 -1
- package/lib/parsers/typescript/components/__test_fixtures__/fixtures.js +5 -1
- package/lib/parsers/typescript/components/__test_fixtures__/fixtures.js.flow +5 -1
- package/lib/parsers/typescript/components/componentsUtils.js +8 -0
- package/lib/parsers/typescript/components/componentsUtils.js.flow +8 -0
- package/lib/parsers/typescript/components/index.js +37 -170
- package/lib/parsers/typescript/components/index.js.flow +33 -109
- package/lib/parsers/typescript/modules/index.js +113 -441
- package/lib/parsers/typescript/modules/index.js.flow +100 -309
- package/lib/parsers/typescript/parser.js +97 -13
- package/lib/parsers/typescript/parser.js.flow +94 -4
- package/lib/parsers/utils.js +4 -0
- package/lib/parsers/utils.js.flow +3 -0
- package/package.json +1 -1
- package/lib/parsers/flow/Visitor.js +0 -37
- package/lib/parsers/flow/Visitor.js.flow +0 -41
- package/lib/parsers/flow/components/options.js +0 -72
- package/lib/parsers/flow/components/options.js.flow +0 -87
- package/lib/parsers/typescript/Visitor.js +0 -42
- package/lib/parsers/typescript/Visitor.js.flow +0 -47
- package/lib/parsers/typescript/components/options.js +0 -72
- package/lib/parsers/typescript/components/options.js.flow +0 -87
|
@@ -10,68 +10,6 @@
|
|
|
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
13
|
function _slicedToArray(arr, i) {
|
|
76
14
|
return (
|
|
77
15
|
_arrayWithHoles(arr) ||
|
|
@@ -140,62 +78,28 @@ function _iterableToArrayLimit(arr, i) {
|
|
|
140
78
|
function _arrayWithHoles(arr) {
|
|
141
79
|
if (Array.isArray(arr)) return arr;
|
|
142
80
|
}
|
|
143
|
-
const _require = require('
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
resolveTypeAnnotation = _require2.resolveTypeAnnotation;
|
|
149
|
-
const _require3 = require('../../parsers-commons'),
|
|
150
|
-
unwrapNullable = _require3.unwrapNullable,
|
|
151
|
-
wrapNullable = _require3.wrapNullable,
|
|
81
|
+
const _require = require('../utils'),
|
|
82
|
+
resolveTypeAnnotation = _require.resolveTypeAnnotation;
|
|
83
|
+
const _require2 = require('../../parsers-commons'),
|
|
84
|
+
unwrapNullable = _require2.unwrapNullable,
|
|
85
|
+
wrapNullable = _require2.wrapNullable,
|
|
152
86
|
assertGenericTypeAnnotationHasExactlyOneTypeParameter =
|
|
153
|
-
|
|
154
|
-
parseObjectProperty =
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
emitPromise = _require4.emitPromise,
|
|
167
|
-
emitRootTag = _require4.emitRootTag,
|
|
168
|
-
emitVoid = _require4.emitVoid,
|
|
169
|
-
emitString = _require4.emitString,
|
|
170
|
-
emitStringish = _require4.emitStringish,
|
|
171
|
-
emitMixed = _require4.emitMixed,
|
|
172
|
-
emitUnion = _require4.emitUnion,
|
|
173
|
-
typeAliasResolution = _require4.typeAliasResolution,
|
|
174
|
-
typeEnumResolution = _require4.typeEnumResolution;
|
|
175
|
-
const _require5 = require('../../errors'),
|
|
87
|
+
_require2.assertGenericTypeAnnotationHasExactlyOneTypeParameter,
|
|
88
|
+
parseObjectProperty = _require2.parseObjectProperty;
|
|
89
|
+
const _require3 = require('../../parsers-primitives'),
|
|
90
|
+
emitArrayType = _require3.emitArrayType,
|
|
91
|
+
emitFunction = _require3.emitFunction,
|
|
92
|
+
emitGenericObject = _require3.emitGenericObject,
|
|
93
|
+
emitPromise = _require3.emitPromise,
|
|
94
|
+
emitRootTag = _require3.emitRootTag,
|
|
95
|
+
emitUnion = _require3.emitUnion,
|
|
96
|
+
emitCommonTypes = _require3.emitCommonTypes,
|
|
97
|
+
typeAliasResolution = _require3.typeAliasResolution,
|
|
98
|
+
typeEnumResolution = _require3.typeEnumResolution;
|
|
99
|
+
const _require4 = require('../../errors'),
|
|
176
100
|
UnsupportedTypeAnnotationParserError =
|
|
177
|
-
|
|
178
|
-
UnsupportedGenericParserError =
|
|
179
|
-
const _require6 = require('../../error-utils'),
|
|
180
|
-
throwIfModuleInterfaceNotFound = _require6.throwIfModuleInterfaceNotFound,
|
|
181
|
-
throwIfModuleInterfaceIsMisnamed = _require6.throwIfModuleInterfaceIsMisnamed,
|
|
182
|
-
throwIfUnusedModuleInterfaceParserError =
|
|
183
|
-
_require6.throwIfUnusedModuleInterfaceParserError,
|
|
184
|
-
throwIfWrongNumberOfCallExpressionArgs =
|
|
185
|
-
_require6.throwIfWrongNumberOfCallExpressionArgs,
|
|
186
|
-
throwIfMoreThanOneModuleRegistryCalls =
|
|
187
|
-
_require6.throwIfMoreThanOneModuleRegistryCalls,
|
|
188
|
-
throwIfIncorrectModuleRegistryCallTypeParameterParserError =
|
|
189
|
-
_require6.throwIfIncorrectModuleRegistryCallTypeParameterParserError,
|
|
190
|
-
throwIfIncorrectModuleRegistryCallArgument =
|
|
191
|
-
_require6.throwIfIncorrectModuleRegistryCallArgument,
|
|
192
|
-
throwIfUntypedModule = _require6.throwIfUntypedModule,
|
|
193
|
-
throwIfMoreThanOneModuleInterfaceParserError =
|
|
194
|
-
_require6.throwIfMoreThanOneModuleInterfaceParserError,
|
|
195
|
-
throwIfPartialNotAnnotatingTypeParameter =
|
|
196
|
-
_require6.throwIfPartialNotAnnotatingTypeParameter,
|
|
197
|
-
throwIfPartialWithMoreParameter = _require6.throwIfPartialWithMoreParameter;
|
|
198
|
-
const language = 'Flow';
|
|
101
|
+
_require4.UnsupportedTypeAnnotationParserError,
|
|
102
|
+
UnsupportedGenericParserError = _require4.UnsupportedGenericParserError;
|
|
199
103
|
function translateTypeAnnotation(
|
|
200
104
|
hasteModuleName,
|
|
201
105
|
/**
|
|
@@ -273,57 +177,26 @@ function translateTypeAnnotation(
|
|
|
273
177
|
isParamNullable = _unwrapNullable2[1];
|
|
274
178
|
return wrapNullable(nullable || isParamNullable, paramType);
|
|
275
179
|
}
|
|
276
|
-
case 'Stringish': {
|
|
277
|
-
return emitStringish(nullable);
|
|
278
|
-
}
|
|
279
|
-
case 'Int32': {
|
|
280
|
-
return emitInt32(nullable);
|
|
281
|
-
}
|
|
282
|
-
case 'Double': {
|
|
283
|
-
return emitDouble(nullable);
|
|
284
|
-
}
|
|
285
|
-
case 'Float': {
|
|
286
|
-
return emitFloat(nullable);
|
|
287
|
-
}
|
|
288
|
-
case 'UnsafeObject':
|
|
289
|
-
case 'Object': {
|
|
290
|
-
return emitGenericObject(nullable);
|
|
291
|
-
}
|
|
292
|
-
case '$Partial': {
|
|
293
|
-
throwIfPartialWithMoreParameter(typeAnnotation);
|
|
294
|
-
const annotatedElement = parser.extractAnnotatedElement(
|
|
295
|
-
typeAnnotation,
|
|
296
|
-
types,
|
|
297
|
-
);
|
|
298
|
-
throwIfPartialNotAnnotatingTypeParameter(
|
|
299
|
-
typeAnnotation,
|
|
300
|
-
types,
|
|
301
|
-
parser,
|
|
302
|
-
);
|
|
303
|
-
const properties = annotatedElement.right.properties.map(prop => {
|
|
304
|
-
return {
|
|
305
|
-
name: prop.key.name,
|
|
306
|
-
optional: true,
|
|
307
|
-
typeAnnotation: translateTypeAnnotation(
|
|
308
|
-
hasteModuleName,
|
|
309
|
-
prop.value,
|
|
310
|
-
types,
|
|
311
|
-
aliasMap,
|
|
312
|
-
enumMap,
|
|
313
|
-
tryParse,
|
|
314
|
-
cxxOnly,
|
|
315
|
-
parser,
|
|
316
|
-
),
|
|
317
|
-
};
|
|
318
|
-
});
|
|
319
|
-
return emitObject(nullable, properties);
|
|
320
|
-
}
|
|
321
180
|
default: {
|
|
322
|
-
|
|
181
|
+
const commonType = emitCommonTypes(
|
|
323
182
|
hasteModuleName,
|
|
183
|
+
types,
|
|
324
184
|
typeAnnotation,
|
|
185
|
+
aliasMap,
|
|
186
|
+
enumMap,
|
|
187
|
+
tryParse,
|
|
188
|
+
cxxOnly,
|
|
189
|
+
nullable,
|
|
325
190
|
parser,
|
|
326
191
|
);
|
|
192
|
+
if (!commonType) {
|
|
193
|
+
throw new UnsupportedGenericParserError(
|
|
194
|
+
hasteModuleName,
|
|
195
|
+
typeAnnotation,
|
|
196
|
+
parser,
|
|
197
|
+
);
|
|
198
|
+
}
|
|
199
|
+
return commonType;
|
|
327
200
|
}
|
|
328
201
|
}
|
|
329
202
|
}
|
|
@@ -380,18 +253,6 @@ function translateTypeAnnotation(
|
|
|
380
253
|
nullable,
|
|
381
254
|
);
|
|
382
255
|
}
|
|
383
|
-
case 'BooleanTypeAnnotation': {
|
|
384
|
-
return emitBoolean(nullable);
|
|
385
|
-
}
|
|
386
|
-
case 'NumberTypeAnnotation': {
|
|
387
|
-
return emitNumber(nullable);
|
|
388
|
-
}
|
|
389
|
-
case 'VoidTypeAnnotation': {
|
|
390
|
-
return emitVoid(nullable);
|
|
391
|
-
}
|
|
392
|
-
case 'StringTypeAnnotation': {
|
|
393
|
-
return emitString(nullable);
|
|
394
|
-
}
|
|
395
256
|
case 'FunctionTypeAnnotation': {
|
|
396
257
|
return emitFunction(
|
|
397
258
|
nullable,
|
|
@@ -416,13 +277,6 @@ function translateTypeAnnotation(
|
|
|
416
277
|
memberType: 'StringTypeAnnotation',
|
|
417
278
|
});
|
|
418
279
|
}
|
|
419
|
-
case 'MixedTypeAnnotation': {
|
|
420
|
-
if (cxxOnly) {
|
|
421
|
-
return emitMixed(nullable);
|
|
422
|
-
} else {
|
|
423
|
-
return emitGenericObject(nullable);
|
|
424
|
-
}
|
|
425
|
-
}
|
|
426
280
|
case 'EnumStringBody':
|
|
427
281
|
case 'EnumNumberBody': {
|
|
428
282
|
return typeEnumResolution(
|
|
@@ -430,163 +284,33 @@ function translateTypeAnnotation(
|
|
|
430
284
|
typeResolutionStatus,
|
|
431
285
|
nullable,
|
|
432
286
|
hasteModuleName,
|
|
433
|
-
language,
|
|
434
287
|
enumMap,
|
|
435
288
|
parser,
|
|
436
289
|
);
|
|
437
290
|
}
|
|
438
291
|
default: {
|
|
439
|
-
|
|
292
|
+
const commonType = emitCommonTypes(
|
|
440
293
|
hasteModuleName,
|
|
294
|
+
types,
|
|
441
295
|
typeAnnotation,
|
|
442
|
-
|
|
296
|
+
aliasMap,
|
|
297
|
+
enumMap,
|
|
298
|
+
tryParse,
|
|
299
|
+
cxxOnly,
|
|
300
|
+
nullable,
|
|
301
|
+
parser,
|
|
443
302
|
);
|
|
303
|
+
if (!commonType) {
|
|
304
|
+
throw new UnsupportedTypeAnnotationParserError(
|
|
305
|
+
hasteModuleName,
|
|
306
|
+
typeAnnotation,
|
|
307
|
+
parser.language(),
|
|
308
|
+
);
|
|
309
|
+
}
|
|
310
|
+
return commonType;
|
|
444
311
|
}
|
|
445
312
|
}
|
|
446
313
|
}
|
|
447
|
-
function buildModuleSchema(
|
|
448
|
-
hasteModuleName,
|
|
449
|
-
/**
|
|
450
|
-
* TODO(T71778680): Flow-type this node.
|
|
451
|
-
*/
|
|
452
|
-
ast,
|
|
453
|
-
tryParse,
|
|
454
|
-
parser,
|
|
455
|
-
) {
|
|
456
|
-
const types = parser.getTypes(ast);
|
|
457
|
-
const moduleSpecs = Object.values(types).filter(t =>
|
|
458
|
-
parser.isModuleInterface(t),
|
|
459
|
-
);
|
|
460
|
-
throwIfModuleInterfaceNotFound(
|
|
461
|
-
moduleSpecs.length,
|
|
462
|
-
hasteModuleName,
|
|
463
|
-
ast,
|
|
464
|
-
language,
|
|
465
|
-
);
|
|
466
|
-
throwIfMoreThanOneModuleInterfaceParserError(
|
|
467
|
-
hasteModuleName,
|
|
468
|
-
moduleSpecs,
|
|
469
|
-
language,
|
|
470
|
-
);
|
|
471
|
-
const _moduleSpecs = _slicedToArray(moduleSpecs, 1),
|
|
472
|
-
moduleSpec = _moduleSpecs[0];
|
|
473
|
-
throwIfModuleInterfaceIsMisnamed(hasteModuleName, moduleSpec.id, language);
|
|
474
|
-
|
|
475
|
-
// Parse Module Name
|
|
476
|
-
const moduleName = (() => {
|
|
477
|
-
const callExpressions = [];
|
|
478
|
-
visit(ast, {
|
|
479
|
-
CallExpression(node) {
|
|
480
|
-
if (isModuleRegistryCall(node)) {
|
|
481
|
-
callExpressions.push(node);
|
|
482
|
-
}
|
|
483
|
-
},
|
|
484
|
-
});
|
|
485
|
-
throwIfUnusedModuleInterfaceParserError(
|
|
486
|
-
hasteModuleName,
|
|
487
|
-
moduleSpec,
|
|
488
|
-
callExpressions,
|
|
489
|
-
);
|
|
490
|
-
throwIfMoreThanOneModuleRegistryCalls(
|
|
491
|
-
hasteModuleName,
|
|
492
|
-
callExpressions,
|
|
493
|
-
callExpressions.length,
|
|
494
|
-
);
|
|
495
|
-
const callExpression = callExpressions[0];
|
|
496
|
-
const typeArguments = callExpression.typeArguments;
|
|
497
|
-
const methodName = callExpression.callee.property.name;
|
|
498
|
-
throwIfWrongNumberOfCallExpressionArgs(
|
|
499
|
-
hasteModuleName,
|
|
500
|
-
callExpression,
|
|
501
|
-
methodName,
|
|
502
|
-
callExpression.arguments.length,
|
|
503
|
-
);
|
|
504
|
-
throwIfIncorrectModuleRegistryCallArgument(
|
|
505
|
-
hasteModuleName,
|
|
506
|
-
callExpression.arguments[0],
|
|
507
|
-
methodName,
|
|
508
|
-
);
|
|
509
|
-
const $moduleName = callExpression.arguments[0].value;
|
|
510
|
-
throwIfUntypedModule(
|
|
511
|
-
typeArguments,
|
|
512
|
-
hasteModuleName,
|
|
513
|
-
callExpression,
|
|
514
|
-
methodName,
|
|
515
|
-
$moduleName,
|
|
516
|
-
);
|
|
517
|
-
throwIfIncorrectModuleRegistryCallTypeParameterParserError(
|
|
518
|
-
hasteModuleName,
|
|
519
|
-
typeArguments,
|
|
520
|
-
methodName,
|
|
521
|
-
$moduleName,
|
|
522
|
-
parser,
|
|
523
|
-
);
|
|
524
|
-
return $moduleName;
|
|
525
|
-
})();
|
|
526
|
-
|
|
527
|
-
// Some module names use platform suffix to indicate platform-exclusive modules.
|
|
528
|
-
// Eventually this should be made explicit in the Flow type itself.
|
|
529
|
-
// Also check the hasteModuleName for platform suffix.
|
|
530
|
-
// Note: this shape is consistent with ComponentSchema.
|
|
531
|
-
const _verifyPlatforms = verifyPlatforms(hasteModuleName, moduleName),
|
|
532
|
-
cxxOnly = _verifyPlatforms.cxxOnly,
|
|
533
|
-
excludedPlatforms = _verifyPlatforms.excludedPlatforms;
|
|
534
|
-
|
|
535
|
-
// $FlowFixMe[missing-type-arg]
|
|
536
|
-
return moduleSpec.body.properties
|
|
537
|
-
.filter(property => property.type === 'ObjectTypeProperty')
|
|
538
|
-
.map(property => {
|
|
539
|
-
const aliasMap = {};
|
|
540
|
-
const enumMap = {};
|
|
541
|
-
return tryParse(() => ({
|
|
542
|
-
aliasMap: aliasMap,
|
|
543
|
-
enumMap: enumMap,
|
|
544
|
-
propertyShape: buildPropertySchema(
|
|
545
|
-
hasteModuleName,
|
|
546
|
-
property,
|
|
547
|
-
types,
|
|
548
|
-
aliasMap,
|
|
549
|
-
enumMap,
|
|
550
|
-
tryParse,
|
|
551
|
-
cxxOnly,
|
|
552
|
-
resolveTypeAnnotation,
|
|
553
|
-
translateTypeAnnotation,
|
|
554
|
-
parser,
|
|
555
|
-
),
|
|
556
|
-
}));
|
|
557
|
-
})
|
|
558
|
-
.filter(Boolean)
|
|
559
|
-
.reduce(
|
|
560
|
-
(moduleSchema, {aliasMap, enumMap, propertyShape}) => ({
|
|
561
|
-
type: 'NativeModule',
|
|
562
|
-
aliasMap: _objectSpread(
|
|
563
|
-
_objectSpread({}, moduleSchema.aliasMap),
|
|
564
|
-
aliasMap,
|
|
565
|
-
),
|
|
566
|
-
enumMap: _objectSpread(
|
|
567
|
-
_objectSpread({}, moduleSchema.enumMap),
|
|
568
|
-
enumMap,
|
|
569
|
-
),
|
|
570
|
-
spec: {
|
|
571
|
-
properties: [...moduleSchema.spec.properties, propertyShape],
|
|
572
|
-
},
|
|
573
|
-
moduleName: moduleSchema.moduleName,
|
|
574
|
-
excludedPlatforms: moduleSchema.excludedPlatforms,
|
|
575
|
-
}),
|
|
576
|
-
{
|
|
577
|
-
type: 'NativeModule',
|
|
578
|
-
aliasMap: {},
|
|
579
|
-
enumMap: {},
|
|
580
|
-
spec: {
|
|
581
|
-
properties: [],
|
|
582
|
-
},
|
|
583
|
-
moduleName,
|
|
584
|
-
excludedPlatforms:
|
|
585
|
-
excludedPlatforms.length !== 0 ? [...excludedPlatforms] : undefined,
|
|
586
|
-
},
|
|
587
|
-
);
|
|
588
|
-
}
|
|
589
314
|
module.exports = {
|
|
590
|
-
buildModuleSchema,
|
|
591
315
|
flowTranslateTypeAnnotation: translateTypeAnnotation,
|
|
592
316
|
};
|