@react-native/codegen 0.74.0 → 0.75.0-nightly-20240221-a1171f79f
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 -1
- package/lib/CodegenSchema.js.flow +2 -1
- package/lib/SchemaValidator.js.flow +2 -2
- package/lib/cli/combine/combine-js-to-schema-cli.js +59 -40
- package/lib/cli/combine/combine-js-to-schema-cli.js.flow +23 -39
- package/lib/cli/combine/combine-js-to-schema.js +49 -1
- package/lib/cli/combine/combine-js-to-schema.js.flow +59 -1
- package/lib/cli/combine/combine-schemas-cli.js +77 -0
- package/lib/cli/combine/combine-schemas-cli.js.flow +87 -0
- package/lib/cli/combine/combine-utils.js +3 -65
- package/lib/cli/combine/combine-utils.js.flow +7 -28
- package/lib/cli/parser/parser.js +1 -1
- package/lib/cli/parser/parser.js.flow +1 -1
- package/lib/generators/RNCodegen.d.ts +1 -0
- package/lib/generators/RNCodegen.js +58 -31
- package/lib/generators/RNCodegen.js.flow +52 -32
- package/lib/generators/TypeUtils/Cxx/index.js +17 -0
- package/lib/generators/TypeUtils/Cxx/index.js.flow +18 -0
- package/lib/generators/TypeUtils/Java/index.js +31 -0
- package/lib/generators/TypeUtils/Java/index.js.flow +27 -0
- package/lib/generators/TypeUtils/Objective-C/index.js +17 -0
- package/lib/generators/TypeUtils/Objective-C/index.js.flow +18 -0
- package/lib/generators/components/ComponentsGeneratorUtils.js +7 -7
- package/lib/generators/components/ComponentsGeneratorUtils.js.flow +8 -10
- package/lib/generators/components/ComponentsProviderUtils.js +55 -0
- package/lib/generators/components/ComponentsProviderUtils.js.flow +60 -0
- package/lib/generators/components/CppHelpers.js +7 -0
- package/lib/generators/components/CppHelpers.js.flow +14 -0
- package/lib/generators/components/GenerateComponentDescriptorCpp.js +89 -0
- package/lib/generators/components/GenerateComponentDescriptorCpp.js.flow +101 -0
- package/lib/generators/components/GenerateComponentDescriptorH.js +28 -12
- package/lib/generators/components/GenerateComponentDescriptorH.js.flow +20 -12
- package/lib/generators/components/GenerateComponentHObjCpp.js +15 -1
- package/lib/generators/components/GenerateComponentHObjCpp.js.flow +11 -2
- package/lib/generators/components/GenerateEventEmitterCpp.js +28 -15
- package/lib/generators/components/GenerateEventEmitterCpp.js.flow +16 -17
- package/lib/generators/components/GenerateEventEmitterH.js +20 -13
- package/lib/generators/components/GenerateEventEmitterH.js.flow +13 -15
- package/lib/generators/components/GeneratePropsCpp.js +17 -8
- package/lib/generators/components/GeneratePropsCpp.js.flow +13 -9
- package/lib/generators/components/GeneratePropsH.js +23 -16
- package/lib/generators/components/GeneratePropsH.js.flow +12 -16
- package/lib/generators/components/GeneratePropsJavaDelegate.js +11 -3
- package/lib/generators/components/GeneratePropsJavaDelegate.js.flow +7 -4
- package/lib/generators/components/GeneratePropsJavaInterface.js +11 -3
- package/lib/generators/components/GeneratePropsJavaInterface.js.flow +6 -3
- package/lib/generators/components/GeneratePropsJavaPojo/PojoCollector.js.flow +6 -6
- package/lib/generators/components/GeneratePropsJavaPojo/index.js +1 -1
- package/lib/generators/components/GeneratePropsJavaPojo/index.js.flow +1 -1
- package/lib/generators/components/GeneratePropsJavaPojo/serializePojo.js.flow +1 -0
- package/lib/generators/components/GenerateShadowNodeCpp.js +19 -8
- package/lib/generators/components/GenerateShadowNodeCpp.js.flow +9 -8
- package/lib/generators/components/GenerateShadowNodeH.js +27 -11
- package/lib/generators/components/GenerateShadowNodeH.js.flow +11 -14
- package/lib/generators/components/GenerateStateCpp.js +19 -8
- package/lib/generators/components/GenerateStateCpp.js.flow +9 -8
- package/lib/generators/components/GenerateStateH.js +9 -5
- package/lib/generators/components/GenerateStateH.js.flow +3 -4
- package/lib/generators/components/GenerateTests.js +11 -5
- package/lib/generators/components/GenerateTests.js.flow +2 -2
- package/lib/generators/components/GenerateThirdPartyFabricComponentsProviderH.js +16 -3
- package/lib/generators/components/GenerateThirdPartyFabricComponentsProviderH.js.flow +18 -3
- package/lib/generators/components/GenerateThirdPartyFabricComponentsProviderObjCpp.js +18 -3
- package/lib/generators/components/GenerateThirdPartyFabricComponentsProviderObjCpp.js.flow +21 -3
- package/lib/generators/components/GenerateViewConfigJs.js +2 -2
- package/lib/generators/components/GenerateViewConfigJs.js.flow +2 -2
- package/lib/generators/components/JavaHelpers.js +8 -0
- package/lib/generators/components/JavaHelpers.js.flow +9 -0
- package/lib/generators/components/__test_fixtures__/fixtures.js +22 -0
- package/lib/generators/components/__test_fixtures__/fixtures.js.flow +22 -0
- package/lib/generators/modules/GenerateModuleCpp.js +14 -10
- package/lib/generators/modules/GenerateModuleCpp.js.flow +9 -10
- package/lib/generators/modules/GenerateModuleH.js +198 -72
- package/lib/generators/modules/GenerateModuleH.js.flow +186 -71
- package/lib/generators/modules/GenerateModuleJavaSpec.js +50 -57
- package/lib/generators/modules/GenerateModuleJavaSpec.js.flow +45 -50
- package/lib/generators/modules/GenerateModuleJniCpp.js +16 -12
- package/lib/generators/modules/GenerateModuleJniCpp.js.flow +11 -12
- package/lib/generators/modules/GenerateModuleJniH.js +12 -5
- package/lib/generators/modules/GenerateModuleJniH.js.flow +8 -6
- package/lib/generators/modules/GenerateModuleObjCpp/StructCollector.js +5 -5
- package/lib/generators/modules/GenerateModuleObjCpp/StructCollector.js.flow +11 -12
- package/lib/generators/modules/GenerateModuleObjCpp/header/serializeConstantsStruct.js +23 -21
- package/lib/generators/modules/GenerateModuleObjCpp/header/serializeConstantsStruct.js.flow +19 -18
- package/lib/generators/modules/GenerateModuleObjCpp/header/serializeRegularStruct.js +23 -21
- package/lib/generators/modules/GenerateModuleObjCpp/header/serializeRegularStruct.js.flow +19 -18
- package/lib/generators/modules/GenerateModuleObjCpp/index.js +18 -20
- package/lib/generators/modules/GenerateModuleObjCpp/index.js.flow +11 -14
- package/lib/generators/modules/GenerateModuleObjCpp/serializeMethod.js +40 -42
- package/lib/generators/modules/GenerateModuleObjCpp/serializeMethod.js.flow +38 -44
- package/lib/generators/modules/GenerateModuleObjCpp/source/serializeModule.js +25 -27
- package/lib/generators/modules/GenerateModuleObjCpp/source/serializeModule.js.flow +26 -28
- package/lib/generators/modules/Utils.js +98 -0
- package/lib/generators/modules/Utils.js.flow +34 -2
- package/lib/generators/modules/__test_fixtures__/fixtures.js +685 -64
- package/lib/generators/modules/__test_fixtures__/fixtures.js.flow +686 -64
- package/lib/parsers/error-utils.js +17 -17
- package/lib/parsers/error-utils.js.flow +10 -10
- package/lib/parsers/errors.js +10 -0
- package/lib/parsers/errors.js.flow +15 -1
- package/lib/parsers/flow/components/__test_fixtures__/fixtures.js +7 -1
- package/lib/parsers/flow/components/__test_fixtures__/fixtures.js.flow +7 -1
- package/lib/parsers/flow/components/commands.js +24 -0
- package/lib/parsers/flow/components/commands.js.flow +45 -3
- package/lib/parsers/flow/components/componentsUtils.js +5 -4
- package/lib/parsers/flow/components/componentsUtils.js.flow +4 -3
- package/lib/parsers/flow/components/events.js +7 -7
- package/lib/parsers/flow/components/events.js.flow +7 -7
- package/lib/parsers/flow/components/index.js +8 -8
- package/lib/parsers/flow/components/index.js.flow +3 -3
- package/lib/parsers/flow/modules/__test_fixtures__/fixtures.js +13 -0
- package/lib/parsers/flow/modules/__test_fixtures__/fixtures.js.flow +13 -0
- package/lib/parsers/flow/modules/index.js +20 -19
- package/lib/parsers/flow/modules/index.js.flow +10 -11
- package/lib/parsers/flow/parseFlowAndThrowErrors.js +105 -0
- package/lib/parsers/flow/parseFlowAndThrowErrors.js.flow +41 -0
- package/lib/parsers/flow/parser.js +24 -25
- package/lib/parsers/flow/parser.js.flow +27 -36
- package/lib/parsers/flow/utils.js.flow +1 -1
- package/lib/parsers/parser.js.flow +12 -10
- package/lib/parsers/parserMock.js +11 -12
- package/lib/parsers/parserMock.js.flow +25 -28
- package/lib/parsers/parsers-commons.js +85 -36
- package/lib/parsers/parsers-commons.js.flow +71 -37
- package/lib/parsers/parsers-primitives.js +17 -17
- package/lib/parsers/parsers-primitives.js.flow +14 -16
- package/lib/parsers/schema.js.flow +3 -3
- package/lib/parsers/typescript/components/__test_fixtures__/fixtures.js +8 -1
- package/lib/parsers/typescript/components/__test_fixtures__/fixtures.js.flow +8 -1
- package/lib/parsers/typescript/components/commands.js +23 -15
- package/lib/parsers/typescript/components/commands.js.flow +24 -16
- package/lib/parsers/typescript/components/componentsUtils.js +34 -20
- package/lib/parsers/typescript/components/componentsUtils.js.flow +36 -19
- package/lib/parsers/typescript/components/events.js +22 -22
- package/lib/parsers/typescript/components/events.js.flow +11 -10
- package/lib/parsers/typescript/components/extends.js.flow +1 -0
- package/lib/parsers/typescript/components/index.js +10 -10
- package/lib/parsers/typescript/components/index.js.flow +4 -4
- package/lib/parsers/typescript/modules/__test_fixtures__/fixtures.js +13 -0
- package/lib/parsers/typescript/modules/__test_fixtures__/fixtures.js.flow +13 -0
- package/lib/parsers/typescript/modules/index.js +25 -20
- package/lib/parsers/typescript/modules/index.js.flow +16 -14
- package/lib/parsers/typescript/parser.js +25 -26
- package/lib/parsers/typescript/parser.js.flow +23 -27
- package/lib/parsers/utils.js +5 -0
- package/lib/parsers/utils.js.flow +6 -1
- package/package.json +8 -6
|
@@ -11,33 +11,33 @@
|
|
|
11
11
|
'use strict';
|
|
12
12
|
|
|
13
13
|
const _require = require('./errors'),
|
|
14
|
+
IncorrectModuleRegistryCallArgumentTypeParserError =
|
|
15
|
+
_require.IncorrectModuleRegistryCallArgumentTypeParserError,
|
|
16
|
+
IncorrectModuleRegistryCallArityParserError =
|
|
17
|
+
_require.IncorrectModuleRegistryCallArityParserError,
|
|
18
|
+
IncorrectModuleRegistryCallTypeParameterParserError =
|
|
19
|
+
_require.IncorrectModuleRegistryCallTypeParameterParserError,
|
|
14
20
|
MisnamedModuleInterfaceParserError =
|
|
15
21
|
_require.MisnamedModuleInterfaceParserError,
|
|
16
|
-
UnsupportedFunctionReturnTypeAnnotationParserError =
|
|
17
|
-
_require.UnsupportedFunctionReturnTypeAnnotationParserError,
|
|
18
22
|
ModuleInterfaceNotFoundParserError =
|
|
19
23
|
_require.ModuleInterfaceNotFoundParserError,
|
|
24
|
+
MoreThanOneModuleInterfaceParserError =
|
|
25
|
+
_require.MoreThanOneModuleInterfaceParserError,
|
|
20
26
|
MoreThanOneModuleRegistryCallsParserError =
|
|
21
27
|
_require.MoreThanOneModuleRegistryCallsParserError,
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
28
|
+
UnsupportedArrayElementTypeAnnotationParserError =
|
|
29
|
+
_require.UnsupportedArrayElementTypeAnnotationParserError,
|
|
30
|
+
UnsupportedFunctionParamTypeAnnotationParserError =
|
|
31
|
+
_require.UnsupportedFunctionParamTypeAnnotationParserError,
|
|
32
|
+
UnsupportedFunctionReturnTypeAnnotationParserError =
|
|
33
|
+
_require.UnsupportedFunctionReturnTypeAnnotationParserError,
|
|
34
|
+
UnsupportedModulePropertyParserError =
|
|
35
|
+
_require.UnsupportedModulePropertyParserError,
|
|
29
36
|
UnsupportedObjectPropertyValueTypeAnnotationParserError =
|
|
30
37
|
_require.UnsupportedObjectPropertyValueTypeAnnotationParserError,
|
|
31
38
|
UntypedModuleRegistryCallParserError =
|
|
32
39
|
_require.UntypedModuleRegistryCallParserError,
|
|
33
|
-
|
|
34
|
-
_require.UnsupportedModulePropertyParserError,
|
|
35
|
-
MoreThanOneModuleInterfaceParserError =
|
|
36
|
-
_require.MoreThanOneModuleInterfaceParserError,
|
|
37
|
-
UnsupportedFunctionParamTypeAnnotationParserError =
|
|
38
|
-
_require.UnsupportedFunctionParamTypeAnnotationParserError,
|
|
39
|
-
UnsupportedArrayElementTypeAnnotationParserError =
|
|
40
|
-
_require.UnsupportedArrayElementTypeAnnotationParserError;
|
|
40
|
+
UnusedModuleInterfaceParserError = _require.UnusedModuleInterfaceParserError;
|
|
41
41
|
function throwIfModuleInterfaceIsMisnamed(
|
|
42
42
|
nativeModuleName,
|
|
43
43
|
moduleSpecId,
|
|
@@ -11,25 +11,25 @@
|
|
|
11
11
|
'use strict';
|
|
12
12
|
|
|
13
13
|
import type {NativeModuleTypeAnnotation} from '../CodegenSchema';
|
|
14
|
+
import type {TypeDeclarationMap} from '../parsers/utils';
|
|
14
15
|
import type {ParserType} from './errors';
|
|
15
16
|
import type {Parser} from './parser';
|
|
16
|
-
import type {TypeDeclarationMap} from '../parsers/utils';
|
|
17
17
|
|
|
18
18
|
const {
|
|
19
|
+
IncorrectModuleRegistryCallArgumentTypeParserError,
|
|
20
|
+
IncorrectModuleRegistryCallArityParserError,
|
|
21
|
+
IncorrectModuleRegistryCallTypeParameterParserError,
|
|
19
22
|
MisnamedModuleInterfaceParserError,
|
|
20
|
-
UnsupportedFunctionReturnTypeAnnotationParserError,
|
|
21
23
|
ModuleInterfaceNotFoundParserError,
|
|
24
|
+
MoreThanOneModuleInterfaceParserError,
|
|
22
25
|
MoreThanOneModuleRegistryCallsParserError,
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
26
|
+
UnsupportedArrayElementTypeAnnotationParserError,
|
|
27
|
+
UnsupportedFunctionParamTypeAnnotationParserError,
|
|
28
|
+
UnsupportedFunctionReturnTypeAnnotationParserError,
|
|
29
|
+
UnsupportedModulePropertyParserError,
|
|
27
30
|
UnsupportedObjectPropertyValueTypeAnnotationParserError,
|
|
28
31
|
UntypedModuleRegistryCallParserError,
|
|
29
|
-
|
|
30
|
-
MoreThanOneModuleInterfaceParserError,
|
|
31
|
-
UnsupportedFunctionParamTypeAnnotationParserError,
|
|
32
|
-
UnsupportedArrayElementTypeAnnotationParserError,
|
|
32
|
+
UnusedModuleInterfaceParserError,
|
|
33
33
|
} = require('./errors');
|
|
34
34
|
|
|
35
35
|
function throwIfModuleInterfaceIsMisnamed(
|
package/lib/parsers/errors.js
CHANGED
|
@@ -165,6 +165,15 @@ class UnsupportedObjectPropertyValueTypeAnnotationParserError extends ParserErro
|
|
|
165
165
|
);
|
|
166
166
|
}
|
|
167
167
|
}
|
|
168
|
+
class UnsupportedObjectDirectRecursivePropertyParserError extends ParserError {
|
|
169
|
+
constructor(propertyName, propertyValueAST, nativeModuleName) {
|
|
170
|
+
super(
|
|
171
|
+
nativeModuleName,
|
|
172
|
+
propertyValueAST,
|
|
173
|
+
`Object property '${propertyName}' is direct recursive and must be nullable.`,
|
|
174
|
+
);
|
|
175
|
+
}
|
|
176
|
+
}
|
|
168
177
|
|
|
169
178
|
/**
|
|
170
179
|
* Function parsing errors
|
|
@@ -315,6 +324,7 @@ module.exports = {
|
|
|
315
324
|
UnsupportedModulePropertyParserError,
|
|
316
325
|
UnsupportedObjectPropertyTypeAnnotationParserError,
|
|
317
326
|
UnsupportedObjectPropertyValueTypeAnnotationParserError,
|
|
327
|
+
UnsupportedObjectDirectRecursivePropertyParserError,
|
|
318
328
|
UnusedModuleInterfaceParserError,
|
|
319
329
|
MoreThanOneModuleRegistryCallsParserError,
|
|
320
330
|
UntypedModuleRegistryCallParserError,
|
|
@@ -11,7 +11,6 @@
|
|
|
11
11
|
'use strict';
|
|
12
12
|
|
|
13
13
|
import type {UnionTypeAnnotationMemberType} from '../CodegenSchema';
|
|
14
|
-
|
|
15
14
|
import type {Parser} from './parser';
|
|
16
15
|
export type ParserType = 'Flow' | 'TypeScript';
|
|
17
16
|
|
|
@@ -218,6 +217,20 @@ class UnsupportedObjectPropertyValueTypeAnnotationParserError extends ParserErro
|
|
|
218
217
|
}
|
|
219
218
|
}
|
|
220
219
|
|
|
220
|
+
class UnsupportedObjectDirectRecursivePropertyParserError extends ParserError {
|
|
221
|
+
constructor(
|
|
222
|
+
propertyName: string,
|
|
223
|
+
propertyValueAST: $FlowFixMe,
|
|
224
|
+
nativeModuleName: string,
|
|
225
|
+
) {
|
|
226
|
+
super(
|
|
227
|
+
nativeModuleName,
|
|
228
|
+
propertyValueAST,
|
|
229
|
+
`Object property '${propertyName}' is direct recursive and must be nullable.`,
|
|
230
|
+
);
|
|
231
|
+
}
|
|
232
|
+
}
|
|
233
|
+
|
|
221
234
|
/**
|
|
222
235
|
* Function parsing errors
|
|
223
236
|
*/
|
|
@@ -406,6 +419,7 @@ module.exports = {
|
|
|
406
419
|
UnsupportedModulePropertyParserError,
|
|
407
420
|
UnsupportedObjectPropertyTypeAnnotationParserError,
|
|
408
421
|
UnsupportedObjectPropertyValueTypeAnnotationParserError,
|
|
422
|
+
UnsupportedObjectDirectRecursivePropertyParserError,
|
|
409
423
|
UnusedModuleInterfaceParserError,
|
|
410
424
|
MoreThanOneModuleRegistryCallsParserError,
|
|
411
425
|
UntypedModuleRegistryCallParserError,
|
|
@@ -988,10 +988,16 @@ export type ScrollTo = (
|
|
|
988
988
|
|
|
989
989
|
interface NativeCommands {
|
|
990
990
|
+scrollTo: ScrollTo;
|
|
991
|
+
+addOverlays: (
|
|
992
|
+
viewRef: React.ElementRef<NativeType>,
|
|
993
|
+
overlayColorsReadOnly: $ReadOnlyArray<string>,
|
|
994
|
+
overlayColorsArray: Array<string>,
|
|
995
|
+
overlayColorsArrayAnnotation: string[],
|
|
996
|
+
) => void;
|
|
991
997
|
}
|
|
992
998
|
|
|
993
999
|
export const Commands = codegenNativeCommands<NativeCommands>({
|
|
994
|
-
supportedCommands: ['scrollTo'],
|
|
1000
|
+
supportedCommands: ['scrollTo', 'addOverlays'],
|
|
995
1001
|
});
|
|
996
1002
|
|
|
997
1003
|
export default (codegenNativeComponent<ModuleProps>(
|
|
@@ -1001,10 +1001,16 @@ export type ScrollTo = (
|
|
|
1001
1001
|
|
|
1002
1002
|
interface NativeCommands {
|
|
1003
1003
|
+scrollTo: ScrollTo;
|
|
1004
|
+
+addOverlays: (
|
|
1005
|
+
viewRef: React.ElementRef<NativeType>,
|
|
1006
|
+
overlayColorsReadOnly: $ReadOnlyArray<string>,
|
|
1007
|
+
overlayColorsArray: Array<string>,
|
|
1008
|
+
overlayColorsArrayAnnotation: string[],
|
|
1009
|
+
) => void;
|
|
1004
1010
|
}
|
|
1005
1011
|
|
|
1006
1012
|
export const Commands = codegenNativeCommands<NativeCommands>({
|
|
1007
|
-
supportedCommands: ['scrollTo'],
|
|
1013
|
+
supportedCommands: ['scrollTo', 'addOverlays'],
|
|
1008
1014
|
});
|
|
1009
1015
|
|
|
1010
1016
|
export default (codegenNativeComponent<ModuleProps>(
|
|
@@ -72,6 +72,30 @@ function buildCommandSchema(property, types) {
|
|
|
72
72
|
type: 'StringTypeAnnotation',
|
|
73
73
|
};
|
|
74
74
|
break;
|
|
75
|
+
case 'Array':
|
|
76
|
+
case '$ReadOnlyArray':
|
|
77
|
+
if (!paramValue.type === 'GenericTypeAnnotation') {
|
|
78
|
+
throw new Error(
|
|
79
|
+
'Array and $ReadOnlyArray are GenericTypeAnnotation for array',
|
|
80
|
+
);
|
|
81
|
+
}
|
|
82
|
+
returnType = {
|
|
83
|
+
type: 'ArrayTypeAnnotation',
|
|
84
|
+
elementType: {
|
|
85
|
+
// TODO: T172453752 support complex type annotation for array element
|
|
86
|
+
type: paramValue.typeParameters.params[0].type,
|
|
87
|
+
},
|
|
88
|
+
};
|
|
89
|
+
break;
|
|
90
|
+
case 'ArrayTypeAnnotation':
|
|
91
|
+
returnType = {
|
|
92
|
+
type: 'ArrayTypeAnnotation',
|
|
93
|
+
elementType: {
|
|
94
|
+
// TODO: T172453752 support complex type annotation for array element
|
|
95
|
+
type: paramValue.elementType.type,
|
|
96
|
+
},
|
|
97
|
+
};
|
|
98
|
+
break;
|
|
75
99
|
default:
|
|
76
100
|
type;
|
|
77
101
|
throw new Error(
|
|
@@ -11,8 +11,9 @@
|
|
|
11
11
|
'use strict';
|
|
12
12
|
|
|
13
13
|
import type {
|
|
14
|
-
|
|
14
|
+
CommandParamTypeAnnotation,
|
|
15
15
|
CommandTypeAnnotation,
|
|
16
|
+
NamedShape,
|
|
16
17
|
} from '../../../CodegenSchema.js';
|
|
17
18
|
import type {TypeDeclarationMap} from '../../utils';
|
|
18
19
|
|
|
@@ -21,7 +22,24 @@ const {getValueFromTypes} = require('../utils.js');
|
|
|
21
22
|
// $FlowFixMe[unclear-type] there's no flowtype for ASTs
|
|
22
23
|
type EventTypeAST = Object;
|
|
23
24
|
|
|
24
|
-
function buildCommandSchema(
|
|
25
|
+
function buildCommandSchema(
|
|
26
|
+
property: EventTypeAST,
|
|
27
|
+
types: TypeDeclarationMap,
|
|
28
|
+
): $ReadOnly<{
|
|
29
|
+
name: string,
|
|
30
|
+
optional: boolean,
|
|
31
|
+
typeAnnotation: {
|
|
32
|
+
type: 'FunctionTypeAnnotation',
|
|
33
|
+
params: $ReadOnlyArray<{
|
|
34
|
+
name: string,
|
|
35
|
+
optional: boolean,
|
|
36
|
+
typeAnnotation: CommandParamTypeAnnotation,
|
|
37
|
+
}>,
|
|
38
|
+
returnTypeAnnotation: {
|
|
39
|
+
type: 'VoidTypeAnnotation',
|
|
40
|
+
},
|
|
41
|
+
},
|
|
42
|
+
}> {
|
|
25
43
|
const name = property.key.name;
|
|
26
44
|
const optional = property.optional;
|
|
27
45
|
const value = getValueFromTypes(property.value, types);
|
|
@@ -48,7 +66,7 @@ function buildCommandSchema(property: EventTypeAST, types: TypeDeclarationMap) {
|
|
|
48
66
|
paramValue.type === 'GenericTypeAnnotation'
|
|
49
67
|
? paramValue.id.name
|
|
50
68
|
: paramValue.type;
|
|
51
|
-
let returnType;
|
|
69
|
+
let returnType: CommandParamTypeAnnotation;
|
|
52
70
|
|
|
53
71
|
switch (type) {
|
|
54
72
|
case 'RootTag':
|
|
@@ -82,6 +100,30 @@ function buildCommandSchema(property: EventTypeAST, types: TypeDeclarationMap) {
|
|
|
82
100
|
type: 'StringTypeAnnotation',
|
|
83
101
|
};
|
|
84
102
|
break;
|
|
103
|
+
case 'Array':
|
|
104
|
+
case '$ReadOnlyArray':
|
|
105
|
+
if (!paramValue.type === 'GenericTypeAnnotation') {
|
|
106
|
+
throw new Error(
|
|
107
|
+
'Array and $ReadOnlyArray are GenericTypeAnnotation for array',
|
|
108
|
+
);
|
|
109
|
+
}
|
|
110
|
+
returnType = {
|
|
111
|
+
type: 'ArrayTypeAnnotation',
|
|
112
|
+
elementType: {
|
|
113
|
+
// TODO: T172453752 support complex type annotation for array element
|
|
114
|
+
type: paramValue.typeParameters.params[0].type,
|
|
115
|
+
},
|
|
116
|
+
};
|
|
117
|
+
break;
|
|
118
|
+
case 'ArrayTypeAnnotation':
|
|
119
|
+
returnType = {
|
|
120
|
+
type: 'ArrayTypeAnnotation',
|
|
121
|
+
elementType: {
|
|
122
|
+
// TODO: T172453752 support complex type annotation for array element
|
|
123
|
+
type: paramValue.elementType.type,
|
|
124
|
+
},
|
|
125
|
+
};
|
|
126
|
+
break;
|
|
85
127
|
default:
|
|
86
128
|
(type: empty);
|
|
87
129
|
throw new Error(
|
|
@@ -10,10 +10,11 @@
|
|
|
10
10
|
|
|
11
11
|
'use strict';
|
|
12
12
|
|
|
13
|
-
const _require = require('
|
|
14
|
-
|
|
15
|
-
const _require2 = require('
|
|
16
|
-
|
|
13
|
+
const _require = require('../../parsers-commons'),
|
|
14
|
+
verifyPropNotAlreadyDefined = _require.verifyPropNotAlreadyDefined;
|
|
15
|
+
const _require2 = require('../utils.js'),
|
|
16
|
+
getValueFromTypes = _require2.getValueFromTypes;
|
|
17
|
+
|
|
17
18
|
// $FlowFixMe[unsupported-variance-annotation]
|
|
18
19
|
function getTypeAnnotationForArray(
|
|
19
20
|
name,
|
|
@@ -10,10 +10,11 @@
|
|
|
10
10
|
|
|
11
11
|
'use strict';
|
|
12
12
|
|
|
13
|
-
const {getValueFromTypes} = require('../utils.js');
|
|
14
|
-
const {verifyPropNotAlreadyDefined} = require('../../parsers-commons');
|
|
15
|
-
import type {TypeDeclarationMap, PropAST, ASTNode} from '../../utils';
|
|
16
13
|
import type {BuildSchemaFN, Parser} from '../../parser';
|
|
14
|
+
import type {ASTNode, PropAST, TypeDeclarationMap} from '../../utils';
|
|
15
|
+
|
|
16
|
+
const {verifyPropNotAlreadyDefined} = require('../../parsers-commons');
|
|
17
|
+
const {getValueFromTypes} = require('../utils.js');
|
|
17
18
|
|
|
18
19
|
// $FlowFixMe[unsupported-variance-annotation]
|
|
19
20
|
function getTypeAnnotationForArray<+T>(
|
|
@@ -11,22 +11,22 @@
|
|
|
11
11
|
'use strict';
|
|
12
12
|
|
|
13
13
|
const _require = require('../../error-utils'),
|
|
14
|
-
|
|
14
|
+
throwIfArgumentPropsAreNull = _require.throwIfArgumentPropsAreNull,
|
|
15
15
|
throwIfBubblingTypeIsNull = _require.throwIfBubblingTypeIsNull,
|
|
16
|
-
|
|
16
|
+
throwIfEventHasNoName = _require.throwIfEventHasNoName;
|
|
17
17
|
const _require2 = require('../../parsers-commons'),
|
|
18
|
-
getEventArgument = _require2.getEventArgument,
|
|
19
18
|
buildPropertiesForEvent = _require2.buildPropertiesForEvent,
|
|
20
|
-
|
|
21
|
-
|
|
19
|
+
emitBuildEventSchema = _require2.emitBuildEventSchema,
|
|
20
|
+
getEventArgument = _require2.getEventArgument,
|
|
21
|
+
handleEventHandler = _require2.handleEventHandler;
|
|
22
22
|
const _require3 = require('../../parsers-primitives'),
|
|
23
23
|
emitBoolProp = _require3.emitBoolProp,
|
|
24
24
|
emitDoubleProp = _require3.emitDoubleProp,
|
|
25
25
|
emitFloatProp = _require3.emitFloatProp,
|
|
26
|
-
emitMixedProp = _require3.emitMixedProp,
|
|
27
|
-
emitStringProp = _require3.emitStringProp,
|
|
28
26
|
emitInt32Prop = _require3.emitInt32Prop,
|
|
27
|
+
emitMixedProp = _require3.emitMixedProp,
|
|
29
28
|
emitObjectProp = _require3.emitObjectProp,
|
|
29
|
+
emitStringProp = _require3.emitStringProp,
|
|
30
30
|
emitUnionProp = _require3.emitUnionProp;
|
|
31
31
|
function getPropertyType(
|
|
32
32
|
/* $FlowFixMe[missing-local-annot] The type annotation(s) required by Flow's
|
|
@@ -11,32 +11,32 @@
|
|
|
11
11
|
'use strict';
|
|
12
12
|
|
|
13
13
|
import type {
|
|
14
|
+
EventTypeAnnotation,
|
|
14
15
|
EventTypeShape,
|
|
15
16
|
NamedShape,
|
|
16
|
-
EventTypeAnnotation,
|
|
17
17
|
} from '../../../CodegenSchema.js';
|
|
18
18
|
import type {Parser} from '../../parser';
|
|
19
19
|
import type {EventArgumentReturnType} from '../../parsers-commons';
|
|
20
20
|
|
|
21
21
|
const {
|
|
22
|
-
throwIfEventHasNoName,
|
|
23
|
-
throwIfBubblingTypeIsNull,
|
|
24
22
|
throwIfArgumentPropsAreNull,
|
|
23
|
+
throwIfBubblingTypeIsNull,
|
|
24
|
+
throwIfEventHasNoName,
|
|
25
25
|
} = require('../../error-utils');
|
|
26
26
|
const {
|
|
27
|
-
getEventArgument,
|
|
28
27
|
buildPropertiesForEvent,
|
|
29
|
-
handleEventHandler,
|
|
30
28
|
emitBuildEventSchema,
|
|
29
|
+
getEventArgument,
|
|
30
|
+
handleEventHandler,
|
|
31
31
|
} = require('../../parsers-commons');
|
|
32
32
|
const {
|
|
33
33
|
emitBoolProp,
|
|
34
34
|
emitDoubleProp,
|
|
35
35
|
emitFloatProp,
|
|
36
|
-
emitMixedProp,
|
|
37
|
-
emitStringProp,
|
|
38
36
|
emitInt32Prop,
|
|
37
|
+
emitMixedProp,
|
|
39
38
|
emitObjectProp,
|
|
39
|
+
emitStringProp,
|
|
40
40
|
emitUnionProp,
|
|
41
41
|
} = require('../../parsers-primitives');
|
|
42
42
|
|
|
@@ -10,14 +10,14 @@
|
|
|
10
10
|
|
|
11
11
|
'use strict';
|
|
12
12
|
|
|
13
|
-
const _require = require('
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
const
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
13
|
+
const _require = require('../../parsers-commons'),
|
|
14
|
+
findComponentConfig = _require.findComponentConfig,
|
|
15
|
+
getCommandProperties = _require.getCommandProperties,
|
|
16
|
+
getOptions = _require.getOptions;
|
|
17
|
+
const _require2 = require('./commands'),
|
|
18
|
+
getCommands = _require2.getCommands;
|
|
19
|
+
const _require3 = require('./events'),
|
|
20
|
+
getEvents = _require3.getEvents;
|
|
21
21
|
|
|
22
22
|
// $FlowFixMe[signature-verification-failure] there's no flowtype for AST
|
|
23
23
|
function buildComponentSchema(ast, parser) {
|
|
@@ -12,13 +12,13 @@
|
|
|
12
12
|
import type {Parser} from '../../parser';
|
|
13
13
|
import type {ComponentSchemaBuilderConfig} from '../../schema.js';
|
|
14
14
|
|
|
15
|
-
const {getCommands} = require('./commands');
|
|
16
|
-
const {getEvents} = require('./events');
|
|
17
15
|
const {
|
|
18
|
-
getOptions,
|
|
19
16
|
findComponentConfig,
|
|
20
17
|
getCommandProperties,
|
|
18
|
+
getOptions,
|
|
21
19
|
} = require('../../parsers-commons');
|
|
20
|
+
const {getCommands} = require('./commands');
|
|
21
|
+
const {getEvents} = require('./events');
|
|
22
22
|
|
|
23
23
|
// $FlowFixMe[signature-verification-failure] there's no flowtype for AST
|
|
24
24
|
function buildComponentSchema(
|
|
@@ -708,10 +708,23 @@ export enum StringOptions {
|
|
|
708
708
|
Three = 'three',
|
|
709
709
|
}
|
|
710
710
|
|
|
711
|
+
export type BinaryTreeNode = {
|
|
712
|
+
left?: BinaryTreeNode,
|
|
713
|
+
value: number,
|
|
714
|
+
right?: BinaryTreeNode,
|
|
715
|
+
};
|
|
716
|
+
|
|
717
|
+
export type GraphNode = {
|
|
718
|
+
label: string,
|
|
719
|
+
neighbors?: Array<GraphNode>,
|
|
720
|
+
};
|
|
721
|
+
|
|
711
722
|
export interface Spec extends TurboModule {
|
|
712
723
|
+getCallback: () => () => void;
|
|
713
724
|
+getMixed: (arg: mixed) => mixed;
|
|
714
725
|
+getEnums: (quality: Quality, resolution?: Resolution, floppy: Floppy, stringOptions: StringOptions) => string;
|
|
726
|
+
+getBinaryTreeNode: (arg: BinaryTreeNode) => BinaryTreeNode;
|
|
727
|
+
+getGraphNode: (arg: GraphNode) => GraphNode;
|
|
715
728
|
+getMap: (arg: {[a: string]: ?number}) => {[b: string]: ?number};
|
|
716
729
|
+getAnotherMap: (arg: {[string]: string}) => {[string]: string};
|
|
717
730
|
+getUnion: (chooseInt: ChooseInt, chooseFloat: ChooseFloat, chooseObject: ChooseObject, chooseString: ChooseString) => ChooseObject;
|
|
@@ -731,10 +731,23 @@ export enum StringOptions {
|
|
|
731
731
|
Three = 'three',
|
|
732
732
|
}
|
|
733
733
|
|
|
734
|
+
export type BinaryTreeNode = {
|
|
735
|
+
left?: BinaryTreeNode,
|
|
736
|
+
value: number,
|
|
737
|
+
right?: BinaryTreeNode,
|
|
738
|
+
};
|
|
739
|
+
|
|
740
|
+
export type GraphNode = {
|
|
741
|
+
label: string,
|
|
742
|
+
neighbors?: Array<GraphNode>,
|
|
743
|
+
};
|
|
744
|
+
|
|
734
745
|
export interface Spec extends TurboModule {
|
|
735
746
|
+getCallback: () => () => void;
|
|
736
747
|
+getMixed: (arg: mixed) => mixed;
|
|
737
748
|
+getEnums: (quality: Quality, resolution?: Resolution, floppy: Floppy, stringOptions: StringOptions) => string;
|
|
749
|
+
+getBinaryTreeNode: (arg: BinaryTreeNode) => BinaryTreeNode;
|
|
750
|
+
+getGraphNode: (arg: GraphNode) => GraphNode;
|
|
738
751
|
+getMap: (arg: {[a: string]: ?number}) => {[b: string]: ?number};
|
|
739
752
|
+getAnotherMap: (arg: {[string]: string}) => {[string]: string};
|
|
740
753
|
+getUnion: (chooseInt: ChooseInt, chooseFloat: ChooseFloat, chooseObject: ChooseObject, chooseString: ChooseString) => ChooseObject;
|
|
@@ -78,26 +78,26 @@ function _iterableToArrayLimit(arr, i) {
|
|
|
78
78
|
function _arrayWithHoles(arr) {
|
|
79
79
|
if (Array.isArray(arr)) return arr;
|
|
80
80
|
}
|
|
81
|
-
const _require = require('../../
|
|
82
|
-
|
|
83
|
-
wrapNullable = _require.wrapNullable,
|
|
84
|
-
assertGenericTypeAnnotationHasExactlyOneTypeParameter =
|
|
85
|
-
_require.assertGenericTypeAnnotationHasExactlyOneTypeParameter,
|
|
86
|
-
parseObjectProperty = _require.parseObjectProperty;
|
|
87
|
-
const _require2 = require('../../parsers-primitives'),
|
|
88
|
-
emitArrayType = _require2.emitArrayType,
|
|
89
|
-
emitFunction = _require2.emitFunction,
|
|
90
|
-
emitDictionary = _require2.emitDictionary,
|
|
91
|
-
emitPromise = _require2.emitPromise,
|
|
92
|
-
emitRootTag = _require2.emitRootTag,
|
|
93
|
-
emitUnion = _require2.emitUnion,
|
|
94
|
-
emitCommonTypes = _require2.emitCommonTypes,
|
|
95
|
-
typeAliasResolution = _require2.typeAliasResolution,
|
|
96
|
-
typeEnumResolution = _require2.typeEnumResolution;
|
|
97
|
-
const _require3 = require('../../errors'),
|
|
81
|
+
const _require = require('../../errors'),
|
|
82
|
+
UnsupportedGenericParserError = _require.UnsupportedGenericParserError,
|
|
98
83
|
UnsupportedTypeAnnotationParserError =
|
|
99
|
-
|
|
100
|
-
|
|
84
|
+
_require.UnsupportedTypeAnnotationParserError;
|
|
85
|
+
const _require2 = require('../../parsers-commons'),
|
|
86
|
+
assertGenericTypeAnnotationHasExactlyOneTypeParameter =
|
|
87
|
+
_require2.assertGenericTypeAnnotationHasExactlyOneTypeParameter,
|
|
88
|
+
parseObjectProperty = _require2.parseObjectProperty,
|
|
89
|
+
unwrapNullable = _require2.unwrapNullable,
|
|
90
|
+
wrapNullable = _require2.wrapNullable;
|
|
91
|
+
const _require3 = require('../../parsers-primitives'),
|
|
92
|
+
emitArrayType = _require3.emitArrayType,
|
|
93
|
+
emitCommonTypes = _require3.emitCommonTypes,
|
|
94
|
+
emitDictionary = _require3.emitDictionary,
|
|
95
|
+
emitFunction = _require3.emitFunction,
|
|
96
|
+
emitPromise = _require3.emitPromise,
|
|
97
|
+
emitRootTag = _require3.emitRootTag,
|
|
98
|
+
emitUnion = _require3.emitUnion,
|
|
99
|
+
typeAliasResolution = _require3.typeAliasResolution,
|
|
100
|
+
typeEnumResolution = _require3.typeEnumResolution;
|
|
101
101
|
function translateTypeAnnotation(
|
|
102
102
|
hasteModuleName,
|
|
103
103
|
/**
|
|
@@ -231,6 +231,7 @@ function translateTypeAnnotation(
|
|
|
231
231
|
.map(property => {
|
|
232
232
|
return tryParse(() => {
|
|
233
233
|
return parseObjectProperty(
|
|
234
|
+
flowTypeAnnotation,
|
|
234
235
|
property,
|
|
235
236
|
hasteModuleName,
|
|
236
237
|
types,
|
|
@@ -13,38 +13,36 @@
|
|
|
13
13
|
import type {
|
|
14
14
|
NamedShape,
|
|
15
15
|
NativeModuleAliasMap,
|
|
16
|
-
NativeModuleEnumMap,
|
|
17
16
|
NativeModuleBaseTypeAnnotation,
|
|
17
|
+
NativeModuleEnumMap,
|
|
18
18
|
NativeModuleTypeAnnotation,
|
|
19
19
|
Nullable,
|
|
20
20
|
} from '../../../CodegenSchema';
|
|
21
|
-
|
|
22
21
|
import type {Parser} from '../../parser';
|
|
23
22
|
import type {ParserErrorCapturer, TypeDeclarationMap} from '../../utils';
|
|
24
23
|
|
|
25
24
|
const {
|
|
26
|
-
|
|
27
|
-
|
|
25
|
+
UnsupportedGenericParserError,
|
|
26
|
+
UnsupportedTypeAnnotationParserError,
|
|
27
|
+
} = require('../../errors');
|
|
28
|
+
const {
|
|
28
29
|
assertGenericTypeAnnotationHasExactlyOneTypeParameter,
|
|
29
30
|
parseObjectProperty,
|
|
31
|
+
unwrapNullable,
|
|
32
|
+
wrapNullable,
|
|
30
33
|
} = require('../../parsers-commons');
|
|
31
34
|
const {
|
|
32
35
|
emitArrayType,
|
|
33
|
-
|
|
36
|
+
emitCommonTypes,
|
|
34
37
|
emitDictionary,
|
|
38
|
+
emitFunction,
|
|
35
39
|
emitPromise,
|
|
36
40
|
emitRootTag,
|
|
37
41
|
emitUnion,
|
|
38
|
-
emitCommonTypes,
|
|
39
42
|
typeAliasResolution,
|
|
40
43
|
typeEnumResolution,
|
|
41
44
|
} = require('../../parsers-primitives');
|
|
42
45
|
|
|
43
|
-
const {
|
|
44
|
-
UnsupportedTypeAnnotationParserError,
|
|
45
|
-
UnsupportedGenericParserError,
|
|
46
|
-
} = require('../../errors');
|
|
47
|
-
|
|
48
46
|
function translateTypeAnnotation(
|
|
49
47
|
hasteModuleName: string,
|
|
50
48
|
/**
|
|
@@ -178,6 +176,7 @@ function translateTypeAnnotation(
|
|
|
178
176
|
property => {
|
|
179
177
|
return tryParse(() => {
|
|
180
178
|
return parseObjectProperty(
|
|
179
|
+
flowTypeAnnotation,
|
|
181
180
|
property,
|
|
182
181
|
hasteModuleName,
|
|
183
182
|
types,
|