@react-native/codegen 0.72.1 → 0.72.3
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 +348 -0
- package/lib/CodegenSchema.js.flow +31 -3
- package/lib/SchemaValidator.d.ts +11 -0
- package/lib/cli/combine/combine-js-to-schema.js +8 -8
- package/lib/cli/combine/combine-js-to-schema.js.flow +8 -7
- package/lib/cli/parser/parser.js +8 -15
- package/lib/cli/parser/parser.js.flow +8 -14
- package/lib/generators/Utils.js +16 -0
- package/lib/generators/Utils.js.flow +20 -0
- package/lib/generators/__test_fixtures__/fixtures.js +2 -1
- package/lib/generators/__test_fixtures__/fixtures.js.flow +2 -1
- package/lib/generators/components/ComponentsGeneratorUtils.js +10 -1
- package/lib/generators/components/ComponentsGeneratorUtils.js.flow +12 -2
- package/lib/generators/components/CppHelpers.js +8 -15
- package/lib/generators/components/CppHelpers.js.flow +8 -19
- package/lib/generators/components/GenerateEventEmitterCpp.js +7 -3
- package/lib/generators/components/GenerateEventEmitterCpp.js.flow +7 -3
- package/lib/generators/components/GenerateEventEmitterH.js +2 -2
- package/lib/generators/components/GenerateEventEmitterH.js.flow +1 -2
- package/lib/generators/components/GeneratePropsH.js +3 -4
- package/lib/generators/components/GeneratePropsH.js.flow +2 -4
- package/lib/generators/components/GeneratePropsJavaDelegate.js +2 -0
- package/lib/generators/components/GeneratePropsJavaDelegate.js.flow +2 -0
- package/lib/generators/components/GeneratePropsJavaInterface.js +3 -0
- package/lib/generators/components/GeneratePropsJavaInterface.js.flow +3 -0
- package/lib/generators/components/GeneratePropsJavaPojo/serializePojo.js +8 -0
- package/lib/generators/components/GeneratePropsJavaPojo/serializePojo.js.flow +12 -0
- package/lib/generators/components/GenerateTests.js +3 -2
- package/lib/generators/components/GenerateTests.js.flow +3 -1
- package/lib/generators/components/GenerateViewConfigJs.js +5 -2
- package/lib/generators/components/GenerateViewConfigJs.js.flow +5 -2
- package/lib/generators/components/JavaHelpers.js +9 -0
- package/lib/generators/components/JavaHelpers.js.flow +12 -1
- package/lib/generators/components/__test_fixtures__/fixtures.js +41 -0
- package/lib/generators/components/__test_fixtures__/fixtures.js.flow +42 -0
- package/lib/generators/modules/GenerateModuleCpp.js +9 -4
- package/lib/generators/modules/GenerateModuleCpp.js.flow +11 -3
- package/lib/generators/modules/GenerateModuleH.js +185 -33
- package/lib/generators/modules/GenerateModuleH.js.flow +203 -25
- package/lib/generators/modules/GenerateModuleJavaSpec.js +2 -2
- package/lib/generators/modules/GenerateModuleJavaSpec.js.flow +5 -5
- package/lib/generators/modules/GenerateModuleJniCpp.js +2 -2
- package/lib/generators/modules/GenerateModuleJniCpp.js.flow +5 -5
- package/lib/generators/modules/GenerateModuleObjCpp/index.js +2 -2
- package/lib/generators/modules/GenerateModuleObjCpp/index.js.flow +2 -2
- package/lib/generators/modules/GenerateModuleObjCpp/serializeMethod.js.flow +2 -2
- package/lib/generators/modules/Utils.js +4 -0
- package/lib/generators/modules/Utils.js.flow +6 -0
- package/lib/generators/modules/__test_fixtures__/fixtures.js +152 -10
- package/lib/generators/modules/__test_fixtures__/fixtures.js.flow +152 -10
- package/lib/parsers/error-utils.js +42 -19
- package/lib/parsers/error-utils.js.flow +46 -19
- package/lib/parsers/errors.d.ts +10 -0
- package/lib/parsers/errors.js +9 -29
- package/lib/parsers/errors.js.flow +2 -20
- package/lib/parsers/flow/Visitor.js +37 -0
- package/lib/parsers/flow/Visitor.js.flow +41 -0
- package/lib/parsers/flow/components/__test_fixtures__/fixtures.js +20 -2
- package/lib/parsers/flow/components/__test_fixtures__/fixtures.js.flow +20 -2
- package/lib/parsers/flow/components/commands.js +3 -0
- package/lib/parsers/flow/components/commands.js.flow +2 -1
- package/lib/parsers/flow/components/componentsUtils.js +10 -0
- package/lib/parsers/flow/components/componentsUtils.js.flow +11 -1
- package/lib/parsers/flow/components/events.js.flow +1 -1
- package/lib/parsers/flow/components/extends.js.flow +1 -1
- package/lib/parsers/flow/components/index.js +16 -20
- package/lib/parsers/flow/components/index.js.flow +8 -7
- package/lib/parsers/flow/components/options.js.flow +1 -1
- package/lib/parsers/flow/components/props.js.flow +1 -1
- package/lib/parsers/flow/modules/__test_fixtures__/failures.js +54 -0
- package/lib/parsers/flow/modules/__test_fixtures__/failures.js.flow +56 -0
- package/lib/parsers/flow/modules/__test_fixtures__/fixtures.js +64 -1
- package/lib/parsers/flow/modules/__test_fixtures__/fixtures.js.flow +66 -1
- package/lib/parsers/flow/modules/index.js +112 -48
- package/lib/parsers/flow/modules/index.js.flow +115 -44
- package/lib/parsers/flow/parser.d.ts +10 -0
- package/lib/parsers/flow/parser.js +173 -32
- package/lib/parsers/flow/parser.js.flow +201 -24
- package/lib/parsers/flow/utils.js +33 -57
- package/lib/parsers/flow/utils.js.flow +37 -60
- package/lib/parsers/parser.d.ts +17 -0
- package/lib/parsers/parser.js.flow +124 -17
- package/lib/parsers/parserMock.js +101 -30
- package/lib/parsers/parserMock.js.flow +139 -24
- package/lib/parsers/parsers-commons.js +121 -119
- package/lib/parsers/parsers-commons.js.flow +136 -131
- package/lib/parsers/parsers-primitives.js +75 -12
- package/lib/parsers/parsers-primitives.js.flow +92 -13
- package/lib/parsers/schema/index.d.ts +10 -0
- package/lib/parsers/{typescript/components/schema.js.flow → schema.js.flow} +1 -1
- package/lib/parsers/typescript/Visitor.js +42 -0
- package/lib/parsers/typescript/Visitor.js.flow +47 -0
- package/lib/parsers/typescript/components/__test_fixtures__/fixtures.js +22 -0
- package/lib/parsers/typescript/components/__test_fixtures__/fixtures.js.flow +22 -0
- package/lib/parsers/typescript/components/commands.js +3 -0
- package/lib/parsers/typescript/components/commands.js.flow +2 -1
- package/lib/parsers/typescript/components/componentsUtils.js +5 -0
- package/lib/parsers/typescript/components/componentsUtils.js.flow +6 -1
- package/lib/parsers/typescript/components/events.js.flow +1 -1
- package/lib/parsers/typescript/components/extends.js.flow +1 -1
- package/lib/parsers/typescript/components/index.js +15 -19
- package/lib/parsers/typescript/components/index.js.flow +8 -7
- package/lib/parsers/typescript/components/options.js.flow +1 -1
- package/lib/parsers/typescript/components/props.js.flow +1 -1
- package/lib/parsers/typescript/modules/__test_fixtures__/failures.js +52 -0
- package/lib/parsers/typescript/modules/__test_fixtures__/failures.js.flow +54 -0
- package/lib/parsers/typescript/modules/__test_fixtures__/fixtures.js +142 -0
- package/lib/parsers/typescript/modules/__test_fixtures__/fixtures.js.flow +146 -0
- package/lib/parsers/typescript/modules/index.js +276 -110
- package/lib/parsers/typescript/modules/index.js.flow +237 -68
- package/lib/parsers/typescript/parser.d.ts +10 -0
- package/lib/parsers/typescript/parser.js +175 -25
- package/lib/parsers/typescript/parser.js.flow +184 -26
- package/lib/parsers/typescript/utils.js +40 -51
- package/lib/parsers/typescript/utils.js.flow +44 -55
- package/lib/parsers/utils.js +0 -125
- package/lib/parsers/utils.js.flow +3 -70
- package/package.json +4 -1
- package/lib/parsers/flow/components/schema.js +0 -106
- package/lib/parsers/flow/components/schema.js.flow +0 -62
- package/lib/parsers/flow/index.js +0 -80
- package/lib/parsers/flow/index.js.flow +0 -85
- package/lib/parsers/typescript/index.js +0 -85
- package/lib/parsers/typescript/index.js.flow +0 -94
- /package/lib/parsers/{typescript/components/schema.js → schema.js} +0 -0
|
@@ -24,6 +24,8 @@ const _require = require('./errors'),
|
|
|
24
24
|
_require.IncorrectModuleRegistryCallArityParserError,
|
|
25
25
|
IncorrectModuleRegistryCallTypeParameterParserError =
|
|
26
26
|
_require.IncorrectModuleRegistryCallTypeParameterParserError,
|
|
27
|
+
IncorrectModuleRegistryCallArgumentTypeParserError =
|
|
28
|
+
_require.IncorrectModuleRegistryCallArgumentTypeParserError,
|
|
27
29
|
UnsupportedObjectPropertyValueTypeAnnotationParserError =
|
|
28
30
|
_require.UnsupportedObjectPropertyValueTypeAnnotationParserError,
|
|
29
31
|
UntypedModuleRegistryCallParserError =
|
|
@@ -67,14 +69,12 @@ function throwIfMoreThanOneModuleRegistryCalls(
|
|
|
67
69
|
hasteModuleName,
|
|
68
70
|
callExpressions,
|
|
69
71
|
callExpressionsLength,
|
|
70
|
-
language,
|
|
71
72
|
) {
|
|
72
73
|
if (callExpressions.length > 1) {
|
|
73
74
|
throw new MoreThanOneModuleRegistryCallsParserError(
|
|
74
75
|
hasteModuleName,
|
|
75
76
|
callExpressions,
|
|
76
77
|
callExpressionsLength,
|
|
77
|
-
language,
|
|
78
78
|
);
|
|
79
79
|
}
|
|
80
80
|
}
|
|
@@ -82,14 +82,9 @@ function throwIfUnusedModuleInterfaceParserError(
|
|
|
82
82
|
nativeModuleName,
|
|
83
83
|
moduleSpec,
|
|
84
84
|
callExpressions,
|
|
85
|
-
language,
|
|
86
85
|
) {
|
|
87
86
|
if (callExpressions.length === 0) {
|
|
88
|
-
throw new UnusedModuleInterfaceParserError(
|
|
89
|
-
nativeModuleName,
|
|
90
|
-
moduleSpec,
|
|
91
|
-
language,
|
|
92
|
-
);
|
|
87
|
+
throw new UnusedModuleInterfaceParserError(nativeModuleName, moduleSpec);
|
|
93
88
|
}
|
|
94
89
|
}
|
|
95
90
|
function throwIfWrongNumberOfCallExpressionArgs(
|
|
@@ -97,7 +92,6 @@ function throwIfWrongNumberOfCallExpressionArgs(
|
|
|
97
92
|
flowCallExpression,
|
|
98
93
|
methodName,
|
|
99
94
|
numberOfCallExpressionArgs,
|
|
100
|
-
language,
|
|
101
95
|
) {
|
|
102
96
|
if (numberOfCallExpressionArgs !== 1) {
|
|
103
97
|
throw new IncorrectModuleRegistryCallArityParserError(
|
|
@@ -105,7 +99,6 @@ function throwIfWrongNumberOfCallExpressionArgs(
|
|
|
105
99
|
flowCallExpression,
|
|
106
100
|
methodName,
|
|
107
101
|
numberOfCallExpressionArgs,
|
|
108
|
-
language,
|
|
109
102
|
);
|
|
110
103
|
}
|
|
111
104
|
}
|
|
@@ -122,7 +115,6 @@ function throwIfIncorrectModuleRegistryCallTypeParameterParserError(
|
|
|
122
115
|
typeArguments,
|
|
123
116
|
methodName,
|
|
124
117
|
moduleName,
|
|
125
|
-
parser.language(),
|
|
126
118
|
);
|
|
127
119
|
}
|
|
128
120
|
if (parser.checkIfInvalidModule(typeArguments)) {
|
|
@@ -133,7 +125,6 @@ function throwIfUnsupportedFunctionReturnTypeAnnotationParserError(
|
|
|
133
125
|
nativeModuleName,
|
|
134
126
|
returnTypeAnnotation,
|
|
135
127
|
invalidReturnType,
|
|
136
|
-
language,
|
|
137
128
|
cxxOnly,
|
|
138
129
|
returnType,
|
|
139
130
|
) {
|
|
@@ -142,7 +133,6 @@ function throwIfUnsupportedFunctionReturnTypeAnnotationParserError(
|
|
|
142
133
|
nativeModuleName,
|
|
143
134
|
returnTypeAnnotation.returnType,
|
|
144
135
|
'FunctionTypeAnnotation',
|
|
145
|
-
language,
|
|
146
136
|
);
|
|
147
137
|
}
|
|
148
138
|
}
|
|
@@ -152,7 +142,6 @@ function throwIfUntypedModule(
|
|
|
152
142
|
callExpression,
|
|
153
143
|
methodName,
|
|
154
144
|
moduleName,
|
|
155
|
-
language,
|
|
156
145
|
) {
|
|
157
146
|
if (typeArguments == null) {
|
|
158
147
|
throw new UntypedModuleRegistryCallParserError(
|
|
@@ -160,7 +149,6 @@ function throwIfUntypedModule(
|
|
|
160
149
|
callExpression,
|
|
161
150
|
methodName,
|
|
162
151
|
moduleName,
|
|
163
|
-
language,
|
|
164
152
|
);
|
|
165
153
|
}
|
|
166
154
|
}
|
|
@@ -203,7 +191,6 @@ function throwIfPropertyValueTypeIsUnsupported(
|
|
|
203
191
|
propertyValue,
|
|
204
192
|
propertyKey,
|
|
205
193
|
type,
|
|
206
|
-
language,
|
|
207
194
|
) {
|
|
208
195
|
const invalidPropertyValueType =
|
|
209
196
|
UnsupportedObjectPropertyTypeToInvalidPropertyValueTypeMap[type];
|
|
@@ -212,7 +199,6 @@ function throwIfPropertyValueTypeIsUnsupported(
|
|
|
212
199
|
propertyValue,
|
|
213
200
|
propertyKey,
|
|
214
201
|
invalidPropertyValueType,
|
|
215
|
-
language,
|
|
216
202
|
);
|
|
217
203
|
}
|
|
218
204
|
function throwIfMoreThanOneModuleInterfaceParserError(
|
|
@@ -247,7 +233,6 @@ function throwIfArrayElementTypeAnnotationIsUnsupported(
|
|
|
247
233
|
flowElementType,
|
|
248
234
|
flowArrayType,
|
|
249
235
|
type,
|
|
250
|
-
language,
|
|
251
236
|
) {
|
|
252
237
|
const TypeMap = {
|
|
253
238
|
FunctionTypeAnnotation: 'FunctionTypeAnnotation',
|
|
@@ -263,10 +248,45 @@ function throwIfArrayElementTypeAnnotationIsUnsupported(
|
|
|
263
248
|
flowElementType,
|
|
264
249
|
flowArrayType,
|
|
265
250
|
TypeMap[type],
|
|
266
|
-
language,
|
|
267
251
|
);
|
|
268
252
|
}
|
|
269
253
|
}
|
|
254
|
+
function throwIfIncorrectModuleRegistryCallArgument(
|
|
255
|
+
nativeModuleName,
|
|
256
|
+
callExpressionArg,
|
|
257
|
+
methodName,
|
|
258
|
+
) {
|
|
259
|
+
if (
|
|
260
|
+
callExpressionArg.type !== 'StringLiteral' &&
|
|
261
|
+
callExpressionArg.type !== 'Literal'
|
|
262
|
+
) {
|
|
263
|
+
const type = callExpressionArg.type;
|
|
264
|
+
throw new IncorrectModuleRegistryCallArgumentTypeParserError(
|
|
265
|
+
nativeModuleName,
|
|
266
|
+
callExpressionArg,
|
|
267
|
+
methodName,
|
|
268
|
+
type,
|
|
269
|
+
);
|
|
270
|
+
}
|
|
271
|
+
}
|
|
272
|
+
function throwIfPartialNotAnnotatingTypeParameter(
|
|
273
|
+
typeAnnotation,
|
|
274
|
+
types,
|
|
275
|
+
parser,
|
|
276
|
+
) {
|
|
277
|
+
const annotatedElement = parser.extractAnnotatedElement(
|
|
278
|
+
typeAnnotation,
|
|
279
|
+
types,
|
|
280
|
+
);
|
|
281
|
+
if (!annotatedElement) {
|
|
282
|
+
throw new Error('Partials only support annotating a type parameter.');
|
|
283
|
+
}
|
|
284
|
+
}
|
|
285
|
+
function throwIfPartialWithMoreParameter(typeAnnotation) {
|
|
286
|
+
if (typeAnnotation.typeParameters.params.length !== 1) {
|
|
287
|
+
throw new Error('Partials only support annotating exactly one parameter.');
|
|
288
|
+
}
|
|
289
|
+
}
|
|
270
290
|
module.exports = {
|
|
271
291
|
throwIfModuleInterfaceIsMisnamed,
|
|
272
292
|
throwIfUnsupportedFunctionReturnTypeAnnotationParserError,
|
|
@@ -281,4 +301,7 @@ module.exports = {
|
|
|
281
301
|
throwIfMoreThanOneModuleInterfaceParserError,
|
|
282
302
|
throwIfUnsupportedFunctionParamTypeAnnotationParserError,
|
|
283
303
|
throwIfArrayElementTypeAnnotationIsUnsupported,
|
|
304
|
+
throwIfIncorrectModuleRegistryCallArgument,
|
|
305
|
+
throwIfPartialNotAnnotatingTypeParameter,
|
|
306
|
+
throwIfPartialWithMoreParameter,
|
|
284
307
|
};
|
|
@@ -13,6 +13,7 @@
|
|
|
13
13
|
import type {NativeModuleTypeAnnotation} from '../CodegenSchema';
|
|
14
14
|
import type {ParserType} from './errors';
|
|
15
15
|
import type {Parser} from './parser';
|
|
16
|
+
import type {TypeDeclarationMap} from '../parsers/utils';
|
|
16
17
|
|
|
17
18
|
const {
|
|
18
19
|
MisnamedModuleInterfaceParserError,
|
|
@@ -22,6 +23,7 @@ const {
|
|
|
22
23
|
UnusedModuleInterfaceParserError,
|
|
23
24
|
IncorrectModuleRegistryCallArityParserError,
|
|
24
25
|
IncorrectModuleRegistryCallTypeParameterParserError,
|
|
26
|
+
IncorrectModuleRegistryCallArgumentTypeParserError,
|
|
25
27
|
UnsupportedObjectPropertyValueTypeAnnotationParserError,
|
|
26
28
|
UntypedModuleRegistryCallParserError,
|
|
27
29
|
UnsupportedModulePropertyParserError,
|
|
@@ -63,14 +65,12 @@ function throwIfMoreThanOneModuleRegistryCalls(
|
|
|
63
65
|
hasteModuleName: string,
|
|
64
66
|
callExpressions: $FlowFixMe,
|
|
65
67
|
callExpressionsLength: number,
|
|
66
|
-
language: ParserType,
|
|
67
68
|
) {
|
|
68
69
|
if (callExpressions.length > 1) {
|
|
69
70
|
throw new MoreThanOneModuleRegistryCallsParserError(
|
|
70
71
|
hasteModuleName,
|
|
71
72
|
callExpressions,
|
|
72
73
|
callExpressionsLength,
|
|
73
|
-
language,
|
|
74
74
|
);
|
|
75
75
|
}
|
|
76
76
|
}
|
|
@@ -79,14 +79,9 @@ function throwIfUnusedModuleInterfaceParserError(
|
|
|
79
79
|
nativeModuleName: string,
|
|
80
80
|
moduleSpec: $FlowFixMe,
|
|
81
81
|
callExpressions: $FlowFixMe,
|
|
82
|
-
language: ParserType,
|
|
83
82
|
) {
|
|
84
83
|
if (callExpressions.length === 0) {
|
|
85
|
-
throw new UnusedModuleInterfaceParserError(
|
|
86
|
-
nativeModuleName,
|
|
87
|
-
moduleSpec,
|
|
88
|
-
language,
|
|
89
|
-
);
|
|
84
|
+
throw new UnusedModuleInterfaceParserError(nativeModuleName, moduleSpec);
|
|
90
85
|
}
|
|
91
86
|
}
|
|
92
87
|
|
|
@@ -95,7 +90,6 @@ function throwIfWrongNumberOfCallExpressionArgs(
|
|
|
95
90
|
flowCallExpression: $FlowFixMe,
|
|
96
91
|
methodName: string,
|
|
97
92
|
numberOfCallExpressionArgs: number,
|
|
98
|
-
language: ParserType,
|
|
99
93
|
) {
|
|
100
94
|
if (numberOfCallExpressionArgs !== 1) {
|
|
101
95
|
throw new IncorrectModuleRegistryCallArityParserError(
|
|
@@ -103,7 +97,6 @@ function throwIfWrongNumberOfCallExpressionArgs(
|
|
|
103
97
|
flowCallExpression,
|
|
104
98
|
methodName,
|
|
105
99
|
numberOfCallExpressionArgs,
|
|
106
|
-
language,
|
|
107
100
|
);
|
|
108
101
|
}
|
|
109
102
|
}
|
|
@@ -121,7 +114,6 @@ function throwIfIncorrectModuleRegistryCallTypeParameterParserError(
|
|
|
121
114
|
typeArguments,
|
|
122
115
|
methodName,
|
|
123
116
|
moduleName,
|
|
124
|
-
parser.language(),
|
|
125
117
|
);
|
|
126
118
|
}
|
|
127
119
|
|
|
@@ -134,7 +126,6 @@ function throwIfUnsupportedFunctionReturnTypeAnnotationParserError(
|
|
|
134
126
|
nativeModuleName: string,
|
|
135
127
|
returnTypeAnnotation: $FlowFixMe,
|
|
136
128
|
invalidReturnType: string,
|
|
137
|
-
language: ParserType,
|
|
138
129
|
cxxOnly: boolean,
|
|
139
130
|
returnType: string,
|
|
140
131
|
) {
|
|
@@ -143,7 +134,6 @@ function throwIfUnsupportedFunctionReturnTypeAnnotationParserError(
|
|
|
143
134
|
nativeModuleName,
|
|
144
135
|
returnTypeAnnotation.returnType,
|
|
145
136
|
'FunctionTypeAnnotation',
|
|
146
|
-
language,
|
|
147
137
|
);
|
|
148
138
|
}
|
|
149
139
|
}
|
|
@@ -154,7 +144,6 @@ function throwIfUntypedModule(
|
|
|
154
144
|
callExpression: $FlowFixMe,
|
|
155
145
|
methodName: string,
|
|
156
146
|
moduleName: string,
|
|
157
|
-
language: ParserType,
|
|
158
147
|
) {
|
|
159
148
|
if (typeArguments == null) {
|
|
160
149
|
throw new UntypedModuleRegistryCallParserError(
|
|
@@ -162,7 +151,6 @@ function throwIfUntypedModule(
|
|
|
162
151
|
callExpression,
|
|
163
152
|
methodName,
|
|
164
153
|
moduleName,
|
|
165
|
-
language,
|
|
166
154
|
);
|
|
167
155
|
}
|
|
168
156
|
}
|
|
@@ -208,7 +196,6 @@ function throwIfPropertyValueTypeIsUnsupported(
|
|
|
208
196
|
propertyValue: $FlowFixMe,
|
|
209
197
|
propertyKey: string,
|
|
210
198
|
type: string,
|
|
211
|
-
language: ParserType,
|
|
212
199
|
) {
|
|
213
200
|
const invalidPropertyValueType =
|
|
214
201
|
UnsupportedObjectPropertyTypeToInvalidPropertyValueTypeMap[type];
|
|
@@ -218,7 +205,6 @@ function throwIfPropertyValueTypeIsUnsupported(
|
|
|
218
205
|
propertyValue,
|
|
219
206
|
propertyKey,
|
|
220
207
|
invalidPropertyValueType,
|
|
221
|
-
language,
|
|
222
208
|
);
|
|
223
209
|
}
|
|
224
210
|
|
|
@@ -256,7 +242,6 @@ function throwIfArrayElementTypeAnnotationIsUnsupported(
|
|
|
256
242
|
flowElementType: $FlowFixMe,
|
|
257
243
|
flowArrayType: 'Array' | '$ReadOnlyArray' | 'ReadonlyArray',
|
|
258
244
|
type: string,
|
|
259
|
-
language: ParserType,
|
|
260
245
|
) {
|
|
261
246
|
const TypeMap = {
|
|
262
247
|
FunctionTypeAnnotation: 'FunctionTypeAnnotation',
|
|
@@ -273,11 +258,50 @@ function throwIfArrayElementTypeAnnotationIsUnsupported(
|
|
|
273
258
|
flowElementType,
|
|
274
259
|
flowArrayType,
|
|
275
260
|
TypeMap[type],
|
|
276
|
-
language,
|
|
277
261
|
);
|
|
278
262
|
}
|
|
279
263
|
}
|
|
280
264
|
|
|
265
|
+
function throwIfIncorrectModuleRegistryCallArgument(
|
|
266
|
+
nativeModuleName: string,
|
|
267
|
+
callExpressionArg: $FlowFixMe,
|
|
268
|
+
methodName: string,
|
|
269
|
+
) {
|
|
270
|
+
if (
|
|
271
|
+
callExpressionArg.type !== 'StringLiteral' &&
|
|
272
|
+
callExpressionArg.type !== 'Literal'
|
|
273
|
+
) {
|
|
274
|
+
const {type} = callExpressionArg;
|
|
275
|
+
throw new IncorrectModuleRegistryCallArgumentTypeParserError(
|
|
276
|
+
nativeModuleName,
|
|
277
|
+
callExpressionArg,
|
|
278
|
+
methodName,
|
|
279
|
+
type,
|
|
280
|
+
);
|
|
281
|
+
}
|
|
282
|
+
}
|
|
283
|
+
|
|
284
|
+
function throwIfPartialNotAnnotatingTypeParameter(
|
|
285
|
+
typeAnnotation: $FlowFixMe,
|
|
286
|
+
types: TypeDeclarationMap,
|
|
287
|
+
parser: Parser,
|
|
288
|
+
) {
|
|
289
|
+
const annotatedElement = parser.extractAnnotatedElement(
|
|
290
|
+
typeAnnotation,
|
|
291
|
+
types,
|
|
292
|
+
);
|
|
293
|
+
|
|
294
|
+
if (!annotatedElement) {
|
|
295
|
+
throw new Error('Partials only support annotating a type parameter.');
|
|
296
|
+
}
|
|
297
|
+
}
|
|
298
|
+
|
|
299
|
+
function throwIfPartialWithMoreParameter(typeAnnotation: $FlowFixMe) {
|
|
300
|
+
if (typeAnnotation.typeParameters.params.length !== 1) {
|
|
301
|
+
throw new Error('Partials only support annotating exactly one parameter.');
|
|
302
|
+
}
|
|
303
|
+
}
|
|
304
|
+
|
|
281
305
|
module.exports = {
|
|
282
306
|
throwIfModuleInterfaceIsMisnamed,
|
|
283
307
|
throwIfUnsupportedFunctionReturnTypeAnnotationParserError,
|
|
@@ -292,4 +316,7 @@ module.exports = {
|
|
|
292
316
|
throwIfMoreThanOneModuleInterfaceParserError,
|
|
293
317
|
throwIfUnsupportedFunctionParamTypeAnnotationParserError,
|
|
294
318
|
throwIfArrayElementTypeAnnotationIsUnsupported,
|
|
319
|
+
throwIfIncorrectModuleRegistryCallArgument,
|
|
320
|
+
throwIfPartialNotAnnotatingTypeParameter,
|
|
321
|
+
throwIfPartialWithMoreParameter,
|
|
295
322
|
};
|
|
@@ -0,0 +1,10 @@
|
|
|
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
|
+
export type ParserType = 'Flow' | 'TypeScript';
|
|
9
|
+
|
|
10
|
+
export declare class ParserError extends Error {}
|
package/lib/parsers/errors.js
CHANGED
|
@@ -132,7 +132,6 @@ class UnsupportedArrayElementTypeAnnotationParserError extends ParserError {
|
|
|
132
132
|
arrayElementTypeAST,
|
|
133
133
|
arrayType,
|
|
134
134
|
invalidArrayElementType,
|
|
135
|
-
language,
|
|
136
135
|
) {
|
|
137
136
|
super(
|
|
138
137
|
nativeModuleName,
|
|
@@ -164,7 +163,6 @@ class UnsupportedObjectPropertyValueTypeAnnotationParserError extends ParserErro
|
|
|
164
163
|
propertyValueAST,
|
|
165
164
|
propertyName,
|
|
166
165
|
invalidPropertyValueType,
|
|
167
|
-
language,
|
|
168
166
|
) {
|
|
169
167
|
super(
|
|
170
168
|
nativeModuleName,
|
|
@@ -179,7 +177,7 @@ class UnsupportedObjectPropertyValueTypeAnnotationParserError extends ParserErro
|
|
|
179
177
|
*/
|
|
180
178
|
|
|
181
179
|
class UnnamedFunctionParamParserError extends ParserError {
|
|
182
|
-
constructor(functionParam, nativeModuleName
|
|
180
|
+
constructor(functionParam, nativeModuleName) {
|
|
183
181
|
super(
|
|
184
182
|
nativeModuleName,
|
|
185
183
|
functionParam,
|
|
@@ -202,12 +200,7 @@ class UnsupportedFunctionParamTypeAnnotationParserError extends ParserError {
|
|
|
202
200
|
}
|
|
203
201
|
}
|
|
204
202
|
class UnsupportedFunctionReturnTypeAnnotationParserError extends ParserError {
|
|
205
|
-
constructor(
|
|
206
|
-
nativeModuleName,
|
|
207
|
-
flowReturnTypeAnnotation,
|
|
208
|
-
invalidReturnType,
|
|
209
|
-
language,
|
|
210
|
-
) {
|
|
203
|
+
constructor(nativeModuleName, flowReturnTypeAnnotation, invalidReturnType) {
|
|
211
204
|
super(
|
|
212
205
|
nativeModuleName,
|
|
213
206
|
flowReturnTypeAnnotation,
|
|
@@ -221,7 +214,7 @@ class UnsupportedFunctionReturnTypeAnnotationParserError extends ParserError {
|
|
|
221
214
|
*/
|
|
222
215
|
|
|
223
216
|
class UnsupportedEnumDeclarationParserError extends ParserError {
|
|
224
|
-
constructor(nativeModuleName, arrayElementTypeAST, memberType
|
|
217
|
+
constructor(nativeModuleName, arrayElementTypeAST, memberType) {
|
|
225
218
|
super(
|
|
226
219
|
nativeModuleName,
|
|
227
220
|
arrayElementTypeAST,
|
|
@@ -235,7 +228,7 @@ class UnsupportedEnumDeclarationParserError extends ParserError {
|
|
|
235
228
|
*/
|
|
236
229
|
|
|
237
230
|
class UnsupportedUnionTypeAnnotationParserError extends ParserError {
|
|
238
|
-
constructor(nativeModuleName, arrayElementTypeAST, types
|
|
231
|
+
constructor(nativeModuleName, arrayElementTypeAST, types) {
|
|
239
232
|
super(
|
|
240
233
|
nativeModuleName,
|
|
241
234
|
arrayElementTypeAST,
|
|
@@ -251,7 +244,7 @@ class UnsupportedUnionTypeAnnotationParserError extends ParserError {
|
|
|
251
244
|
*/
|
|
252
245
|
|
|
253
246
|
class UnusedModuleInterfaceParserError extends ParserError {
|
|
254
|
-
constructor(nativeModuleName, flowInterface
|
|
247
|
+
constructor(nativeModuleName, flowInterface) {
|
|
255
248
|
super(
|
|
256
249
|
nativeModuleName,
|
|
257
250
|
flowInterface,
|
|
@@ -260,7 +253,7 @@ class UnusedModuleInterfaceParserError extends ParserError {
|
|
|
260
253
|
}
|
|
261
254
|
}
|
|
262
255
|
class MoreThanOneModuleRegistryCallsParserError extends ParserError {
|
|
263
|
-
constructor(nativeModuleName, flowCallExpressions, numCalls
|
|
256
|
+
constructor(nativeModuleName, flowCallExpressions, numCalls) {
|
|
264
257
|
super(
|
|
265
258
|
nativeModuleName,
|
|
266
259
|
flowCallExpressions,
|
|
@@ -269,13 +262,7 @@ class MoreThanOneModuleRegistryCallsParserError extends ParserError {
|
|
|
269
262
|
}
|
|
270
263
|
}
|
|
271
264
|
class UntypedModuleRegistryCallParserError extends ParserError {
|
|
272
|
-
constructor(
|
|
273
|
-
nativeModuleName,
|
|
274
|
-
flowCallExpression,
|
|
275
|
-
methodName,
|
|
276
|
-
moduleName,
|
|
277
|
-
language,
|
|
278
|
-
) {
|
|
265
|
+
constructor(nativeModuleName, flowCallExpression, methodName, moduleName) {
|
|
279
266
|
super(
|
|
280
267
|
nativeModuleName,
|
|
281
268
|
flowCallExpression,
|
|
@@ -284,13 +271,7 @@ class UntypedModuleRegistryCallParserError extends ParserError {
|
|
|
284
271
|
}
|
|
285
272
|
}
|
|
286
273
|
class IncorrectModuleRegistryCallTypeParameterParserError extends ParserError {
|
|
287
|
-
constructor(
|
|
288
|
-
nativeModuleName,
|
|
289
|
-
flowTypeArguments,
|
|
290
|
-
methodName,
|
|
291
|
-
moduleName,
|
|
292
|
-
language,
|
|
293
|
-
) {
|
|
274
|
+
constructor(nativeModuleName, flowTypeArguments, methodName, moduleName) {
|
|
294
275
|
super(
|
|
295
276
|
nativeModuleName,
|
|
296
277
|
flowTypeArguments,
|
|
@@ -304,7 +285,6 @@ class IncorrectModuleRegistryCallArityParserError extends ParserError {
|
|
|
304
285
|
flowCallExpression,
|
|
305
286
|
methodName,
|
|
306
287
|
incorrectArity,
|
|
307
|
-
language,
|
|
308
288
|
) {
|
|
309
289
|
super(
|
|
310
290
|
nativeModuleName,
|
|
@@ -314,7 +294,7 @@ class IncorrectModuleRegistryCallArityParserError extends ParserError {
|
|
|
314
294
|
}
|
|
315
295
|
}
|
|
316
296
|
class IncorrectModuleRegistryCallArgumentTypeParserError extends ParserError {
|
|
317
|
-
constructor(nativeModuleName, flowArgument, methodName, type
|
|
297
|
+
constructor(nativeModuleName, flowArgument, methodName, type) {
|
|
318
298
|
const a = /[aeiouy]/.test(type.toLowerCase()) ? 'an' : 'a';
|
|
319
299
|
super(
|
|
320
300
|
nativeModuleName,
|
|
@@ -176,7 +176,6 @@ class UnsupportedArrayElementTypeAnnotationParserError extends ParserError {
|
|
|
176
176
|
arrayElementTypeAST: $FlowFixMe,
|
|
177
177
|
arrayType: 'Array' | '$ReadOnlyArray' | 'ReadonlyArray',
|
|
178
178
|
invalidArrayElementType: string,
|
|
179
|
-
language: ParserType,
|
|
180
179
|
) {
|
|
181
180
|
super(
|
|
182
181
|
nativeModuleName,
|
|
@@ -216,7 +215,6 @@ class UnsupportedObjectPropertyValueTypeAnnotationParserError extends ParserErro
|
|
|
216
215
|
propertyValueAST: $FlowFixMe,
|
|
217
216
|
propertyName: string,
|
|
218
217
|
invalidPropertyValueType: string,
|
|
219
|
-
language: ParserType,
|
|
220
218
|
) {
|
|
221
219
|
super(
|
|
222
220
|
nativeModuleName,
|
|
@@ -231,11 +229,7 @@ class UnsupportedObjectPropertyValueTypeAnnotationParserError extends ParserErro
|
|
|
231
229
|
*/
|
|
232
230
|
|
|
233
231
|
class UnnamedFunctionParamParserError extends ParserError {
|
|
234
|
-
constructor(
|
|
235
|
-
functionParam: $FlowFixMe,
|
|
236
|
-
nativeModuleName: string,
|
|
237
|
-
language: ParserType,
|
|
238
|
-
) {
|
|
232
|
+
constructor(functionParam: $FlowFixMe, nativeModuleName: string) {
|
|
239
233
|
super(
|
|
240
234
|
nativeModuleName,
|
|
241
235
|
functionParam,
|
|
@@ -264,7 +258,6 @@ class UnsupportedFunctionReturnTypeAnnotationParserError extends ParserError {
|
|
|
264
258
|
nativeModuleName: string,
|
|
265
259
|
flowReturnTypeAnnotation: $FlowFixMe,
|
|
266
260
|
invalidReturnType: string,
|
|
267
|
-
language: ParserType,
|
|
268
261
|
) {
|
|
269
262
|
super(
|
|
270
263
|
nativeModuleName,
|
|
@@ -283,7 +276,6 @@ class UnsupportedEnumDeclarationParserError extends ParserError {
|
|
|
283
276
|
nativeModuleName: string,
|
|
284
277
|
arrayElementTypeAST: $FlowFixMe,
|
|
285
278
|
memberType: string,
|
|
286
|
-
language: ParserType,
|
|
287
279
|
) {
|
|
288
280
|
super(
|
|
289
281
|
nativeModuleName,
|
|
@@ -302,7 +294,6 @@ class UnsupportedUnionTypeAnnotationParserError extends ParserError {
|
|
|
302
294
|
nativeModuleName: string,
|
|
303
295
|
arrayElementTypeAST: $FlowFixMe,
|
|
304
296
|
types: UnionTypeAnnotationMemberType[],
|
|
305
|
-
language: ParserType,
|
|
306
297
|
) {
|
|
307
298
|
super(
|
|
308
299
|
nativeModuleName,
|
|
@@ -319,11 +310,7 @@ class UnsupportedUnionTypeAnnotationParserError extends ParserError {
|
|
|
319
310
|
*/
|
|
320
311
|
|
|
321
312
|
class UnusedModuleInterfaceParserError extends ParserError {
|
|
322
|
-
constructor(
|
|
323
|
-
nativeModuleName: string,
|
|
324
|
-
flowInterface: $FlowFixMe,
|
|
325
|
-
language: ParserType,
|
|
326
|
-
) {
|
|
313
|
+
constructor(nativeModuleName: string, flowInterface: $FlowFixMe) {
|
|
327
314
|
super(
|
|
328
315
|
nativeModuleName,
|
|
329
316
|
flowInterface,
|
|
@@ -337,7 +324,6 @@ class MoreThanOneModuleRegistryCallsParserError extends ParserError {
|
|
|
337
324
|
nativeModuleName: string,
|
|
338
325
|
flowCallExpressions: $FlowFixMe,
|
|
339
326
|
numCalls: number,
|
|
340
|
-
language: ParserType,
|
|
341
327
|
) {
|
|
342
328
|
super(
|
|
343
329
|
nativeModuleName,
|
|
@@ -353,7 +339,6 @@ class UntypedModuleRegistryCallParserError extends ParserError {
|
|
|
353
339
|
flowCallExpression: $FlowFixMe,
|
|
354
340
|
methodName: string,
|
|
355
341
|
moduleName: string,
|
|
356
|
-
language: ParserType,
|
|
357
342
|
) {
|
|
358
343
|
super(
|
|
359
344
|
nativeModuleName,
|
|
@@ -369,7 +354,6 @@ class IncorrectModuleRegistryCallTypeParameterParserError extends ParserError {
|
|
|
369
354
|
flowTypeArguments: $FlowFixMe,
|
|
370
355
|
methodName: string,
|
|
371
356
|
moduleName: string,
|
|
372
|
-
language: ParserType,
|
|
373
357
|
) {
|
|
374
358
|
super(
|
|
375
359
|
nativeModuleName,
|
|
@@ -385,7 +369,6 @@ class IncorrectModuleRegistryCallArityParserError extends ParserError {
|
|
|
385
369
|
flowCallExpression: $FlowFixMe,
|
|
386
370
|
methodName: string,
|
|
387
371
|
incorrectArity: number,
|
|
388
|
-
language: ParserType,
|
|
389
372
|
) {
|
|
390
373
|
super(
|
|
391
374
|
nativeModuleName,
|
|
@@ -401,7 +384,6 @@ class IncorrectModuleRegistryCallArgumentTypeParserError extends ParserError {
|
|
|
401
384
|
flowArgument: $FlowFixMe,
|
|
402
385
|
methodName: string,
|
|
403
386
|
type: string,
|
|
404
|
-
language: ParserType,
|
|
405
387
|
) {
|
|
406
388
|
const a = /[aeiouy]/.test(type.toLowerCase()) ? 'an' : 'a';
|
|
407
389
|
super(
|
|
@@ -0,0 +1,37 @@
|
|
|
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 _require = require('../utils'),
|
|
14
|
+
isModuleRegistryCall = _require.isModuleRegistryCall;
|
|
15
|
+
function Visitor(infoMap) {
|
|
16
|
+
return {
|
|
17
|
+
CallExpression(node) {
|
|
18
|
+
if (
|
|
19
|
+
node.callee.type === 'Identifier' &&
|
|
20
|
+
node.callee.name === 'codegenNativeComponent'
|
|
21
|
+
) {
|
|
22
|
+
infoMap.isComponent = true;
|
|
23
|
+
}
|
|
24
|
+
if (isModuleRegistryCall(node)) {
|
|
25
|
+
infoMap.isModule = true;
|
|
26
|
+
}
|
|
27
|
+
},
|
|
28
|
+
InterfaceExtends(node) {
|
|
29
|
+
if (node.id.name === 'TurboModule') {
|
|
30
|
+
infoMap.isModule = true;
|
|
31
|
+
}
|
|
32
|
+
},
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
module.exports = {
|
|
36
|
+
Visitor,
|
|
37
|
+
};
|
|
@@ -0,0 +1,41 @@
|
|
|
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
|
+
* @flow strict
|
|
8
|
+
* @format
|
|
9
|
+
*/
|
|
10
|
+
|
|
11
|
+
'use strict';
|
|
12
|
+
|
|
13
|
+
const {isModuleRegistryCall} = require('../utils');
|
|
14
|
+
|
|
15
|
+
function Visitor(infoMap: {isComponent: boolean, isModule: boolean}): {
|
|
16
|
+
[type: string]: (node: $FlowFixMe) => void,
|
|
17
|
+
} {
|
|
18
|
+
return {
|
|
19
|
+
CallExpression(node: $FlowFixMe) {
|
|
20
|
+
if (
|
|
21
|
+
node.callee.type === 'Identifier' &&
|
|
22
|
+
node.callee.name === 'codegenNativeComponent'
|
|
23
|
+
) {
|
|
24
|
+
infoMap.isComponent = true;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
if (isModuleRegistryCall(node)) {
|
|
28
|
+
infoMap.isModule = true;
|
|
29
|
+
}
|
|
30
|
+
},
|
|
31
|
+
InterfaceExtends(node: $FlowFixMe) {
|
|
32
|
+
if (node.id.name === 'TurboModule') {
|
|
33
|
+
infoMap.isModule = true;
|
|
34
|
+
}
|
|
35
|
+
},
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
module.exports = {
|
|
40
|
+
Visitor,
|
|
41
|
+
};
|