@react-native/codegen 0.72.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +21 -0
- package/lib/CodegenSchema.js +11 -0
- package/lib/CodegenSchema.js.flow +351 -0
- package/lib/SchemaValidator.js +54 -0
- package/lib/SchemaValidator.js.flow +67 -0
- package/lib/cli/combine/combine-js-to-schema-cli.js +50 -0
- package/lib/cli/combine/combine-js-to-schema-cli.js.flow +49 -0
- package/lib/cli/combine/combine-js-to-schema.js +110 -0
- package/lib/cli/combine/combine-js-to-schema.js.flow +48 -0
- package/lib/cli/combine/combine-utils.js +118 -0
- package/lib/cli/combine/combine-utils.js.flow +85 -0
- package/lib/cli/generators/generate-all.js +65 -0
- package/lib/cli/generators/generate-all.js.flow +66 -0
- package/lib/cli/parser/parser-cli.js +55 -0
- package/lib/cli/parser/parser-cli.js.flow +18 -0
- package/lib/cli/parser/parser.js +35 -0
- package/lib/cli/parser/parser.js.flow +37 -0
- package/lib/cli/parser/parser.sh +15 -0
- package/lib/generators/RNCodegen.js +207 -0
- package/lib/generators/RNCodegen.js.flow +284 -0
- package/lib/generators/Utils.js +31 -0
- package/lib/generators/Utils.js.flow +33 -0
- package/lib/generators/__test_fixtures__/fixtures.js +79 -0
- package/lib/generators/__test_fixtures__/fixtures.js.flow +82 -0
- package/lib/generators/components/ComponentsGeneratorUtils.js +217 -0
- package/lib/generators/components/ComponentsGeneratorUtils.js.flow +304 -0
- package/lib/generators/components/CppHelpers.js +188 -0
- package/lib/generators/components/CppHelpers.js.flow +228 -0
- package/lib/generators/components/GenerateComponentDescriptorH.js +75 -0
- package/lib/generators/components/GenerateComponentDescriptorH.js.flow +95 -0
- package/lib/generators/components/GenerateComponentHObjCpp.js +327 -0
- package/lib/generators/components/GenerateComponentHObjCpp.js.flow +418 -0
- package/lib/generators/components/GenerateEventEmitterCpp.js +199 -0
- package/lib/generators/components/GenerateEventEmitterCpp.js.flow +273 -0
- package/lib/generators/components/GenerateEventEmitterH.js +224 -0
- package/lib/generators/components/GenerateEventEmitterH.js.flow +315 -0
- package/lib/generators/components/GeneratePropsCpp.js +126 -0
- package/lib/generators/components/GeneratePropsCpp.js.flow +161 -0
- package/lib/generators/components/GeneratePropsH.js +606 -0
- package/lib/generators/components/GeneratePropsH.js.flow +778 -0
- package/lib/generators/components/GeneratePropsJavaDelegate.js +287 -0
- package/lib/generators/components/GeneratePropsJavaDelegate.js.flow +348 -0
- package/lib/generators/components/GeneratePropsJavaInterface.js +237 -0
- package/lib/generators/components/GeneratePropsJavaInterface.js.flow +288 -0
- package/lib/generators/components/GeneratePropsJavaPojo/PojoCollector.js +157 -0
- package/lib/generators/components/GeneratePropsJavaPojo/PojoCollector.js.flow +187 -0
- package/lib/generators/components/GeneratePropsJavaPojo/index.js +66 -0
- package/lib/generators/components/GeneratePropsJavaPojo/index.js.flow +80 -0
- package/lib/generators/components/GeneratePropsJavaPojo/serializePojo.js +273 -0
- package/lib/generators/components/GeneratePropsJavaPojo/serializePojo.js.flow +296 -0
- package/lib/generators/components/GenerateShadowNodeCpp.js +73 -0
- package/lib/generators/components/GenerateShadowNodeCpp.js.flow +95 -0
- package/lib/generators/components/GenerateShadowNodeH.js +91 -0
- package/lib/generators/components/GenerateShadowNodeH.js.flow +124 -0
- package/lib/generators/components/GenerateStateCpp.js +70 -0
- package/lib/generators/components/GenerateStateCpp.js.flow +92 -0
- package/lib/generators/components/GenerateStateH.js +93 -0
- package/lib/generators/components/GenerateStateH.js.flow +111 -0
- package/lib/generators/components/GenerateTests.js +165 -0
- package/lib/generators/components/GenerateTests.js.flow +219 -0
- package/lib/generators/components/GenerateThirdPartyFabricComponentsProviderH.js +91 -0
- package/lib/generators/components/GenerateThirdPartyFabricComponentsProviderH.js.flow +107 -0
- package/lib/generators/components/GenerateThirdPartyFabricComponentsProviderObjCpp.js +89 -0
- package/lib/generators/components/GenerateThirdPartyFabricComponentsProviderObjCpp.js.flow +105 -0
- package/lib/generators/components/GenerateViewConfigJs.js +410 -0
- package/lib/generators/components/GenerateViewConfigJs.js.flow +484 -0
- package/lib/generators/components/JavaHelpers.js +87 -0
- package/lib/generators/components/JavaHelpers.js.flow +119 -0
- package/lib/generators/components/__test_fixtures__/fixtures.js +1641 -0
- package/lib/generators/components/__test_fixtures__/fixtures.js.flow +1672 -0
- package/lib/generators/modules/GenerateModuleCpp.js +299 -0
- package/lib/generators/modules/GenerateModuleCpp.js.flow +278 -0
- package/lib/generators/modules/GenerateModuleH.js +373 -0
- package/lib/generators/modules/GenerateModuleH.js.flow +355 -0
- package/lib/generators/modules/GenerateModuleJavaSpec.js +571 -0
- package/lib/generators/modules/GenerateModuleJavaSpec.js.flow +553 -0
- package/lib/generators/modules/GenerateModuleJniCpp.js +505 -0
- package/lib/generators/modules/GenerateModuleJniCpp.js.flow +523 -0
- package/lib/generators/modules/GenerateModuleJniH.js +138 -0
- package/lib/generators/modules/GenerateModuleJniH.js.flow +148 -0
- package/lib/generators/modules/GenerateModuleObjCpp/StructCollector.js +262 -0
- package/lib/generators/modules/GenerateModuleObjCpp/StructCollector.js.flow +208 -0
- package/lib/generators/modules/GenerateModuleObjCpp/Utils.js +25 -0
- package/lib/generators/modules/GenerateModuleObjCpp/Utils.js.flow +32 -0
- package/lib/generators/modules/GenerateModuleObjCpp/header/serializeConstantsStruct.js +337 -0
- package/lib/generators/modules/GenerateModuleObjCpp/header/serializeConstantsStruct.js.flow +288 -0
- package/lib/generators/modules/GenerateModuleObjCpp/header/serializeRegularStruct.js +330 -0
- package/lib/generators/modules/GenerateModuleObjCpp/header/serializeRegularStruct.js.flow +279 -0
- package/lib/generators/modules/GenerateModuleObjCpp/header/serializeStruct.js +25 -0
- package/lib/generators/modules/GenerateModuleObjCpp/header/serializeStruct.js.flow +35 -0
- package/lib/generators/modules/GenerateModuleObjCpp/index.js +185 -0
- package/lib/generators/modules/GenerateModuleObjCpp/index.js.flow +219 -0
- package/lib/generators/modules/GenerateModuleObjCpp/serializeMethod.js +529 -0
- package/lib/generators/modules/GenerateModuleObjCpp/serializeMethod.js.flow +510 -0
- package/lib/generators/modules/GenerateModuleObjCpp/source/serializeModule.js +96 -0
- package/lib/generators/modules/GenerateModuleObjCpp/source/serializeModule.js.flow +121 -0
- package/lib/generators/modules/Utils.js +34 -0
- package/lib/generators/modules/Utils.js.flow +53 -0
- package/lib/generators/modules/__test_fixtures__/fixtures.js +1658 -0
- package/lib/generators/modules/__test_fixtures__/fixtures.js.flow +1669 -0
- package/lib/parsers/consistency/compareSnaps.js +84 -0
- package/lib/parsers/error-utils.js +284 -0
- package/lib/parsers/error-utils.js.flow +295 -0
- package/lib/parsers/errors.js +350 -0
- package/lib/parsers/errors.js.flow +439 -0
- package/lib/parsers/flow/components/__test_fixtures__/failures.js +583 -0
- package/lib/parsers/flow/components/__test_fixtures__/failures.js.flow +600 -0
- package/lib/parsers/flow/components/__test_fixtures__/fixtures.js +1001 -0
- package/lib/parsers/flow/components/__test_fixtures__/fixtures.js.flow +1016 -0
- package/lib/parsers/flow/components/commands.js +104 -0
- package/lib/parsers/flow/components/commands.js.flow +123 -0
- package/lib/parsers/flow/components/componentsUtils.js +446 -0
- package/lib/parsers/flow/components/componentsUtils.js.flow +496 -0
- package/lib/parsers/flow/components/events.js +233 -0
- package/lib/parsers/flow/components/events.js.flow +262 -0
- package/lib/parsers/flow/components/extends.js +52 -0
- package/lib/parsers/flow/components/extends.js.flow +66 -0
- package/lib/parsers/flow/components/index.js +267 -0
- package/lib/parsers/flow/components/index.js.flow +226 -0
- package/lib/parsers/flow/components/options.js +72 -0
- package/lib/parsers/flow/components/options.js.flow +87 -0
- package/lib/parsers/flow/components/props.js +47 -0
- package/lib/parsers/flow/components/props.js.flow +60 -0
- package/lib/parsers/flow/components/schema.js +106 -0
- package/lib/parsers/flow/components/schema.js.flow +62 -0
- package/lib/parsers/flow/index.js +80 -0
- package/lib/parsers/flow/index.js.flow +85 -0
- package/lib/parsers/flow/modules/__test_fixtures__/failures.js +215 -0
- package/lib/parsers/flow/modules/__test_fixtures__/failures.js.flow +223 -0
- package/lib/parsers/flow/modules/__test_fixtures__/fixtures.js +724 -0
- package/lib/parsers/flow/modules/__test_fixtures__/fixtures.js.flow +747 -0
- package/lib/parsers/flow/modules/index.js +528 -0
- package/lib/parsers/flow/modules/index.js.flow +420 -0
- package/lib/parsers/flow/parser.js +109 -0
- package/lib/parsers/flow/parser.js.flow +83 -0
- package/lib/parsers/flow/utils.js +108 -0
- package/lib/parsers/flow/utils.js.flow +123 -0
- package/lib/parsers/parser.js +11 -0
- package/lib/parsers/parser.js.flow +70 -0
- package/lib/parsers/parserMock.js +96 -0
- package/lib/parsers/parserMock.js.flow +68 -0
- package/lib/parsers/parsers-commons.js +448 -0
- package/lib/parsers/parsers-commons.js.flow +447 -0
- package/lib/parsers/parsers-primitives.js +387 -0
- package/lib/parsers/parsers-primitives.js.flow +383 -0
- package/lib/parsers/parsers-utils.js +18 -0
- package/lib/parsers/parsers-utils.js.flow +19 -0
- package/lib/parsers/schema/index.js +23 -0
- package/lib/parsers/schema/index.js.flow +26 -0
- package/lib/parsers/typescript/components/__test_fixtures__/failures.js +489 -0
- package/lib/parsers/typescript/components/__test_fixtures__/failures.js.flow +505 -0
- package/lib/parsers/typescript/components/__test_fixtures__/fixtures.js +1151 -0
- package/lib/parsers/typescript/components/__test_fixtures__/fixtures.js.flow +1168 -0
- package/lib/parsers/typescript/components/commands.js +132 -0
- package/lib/parsers/typescript/components/commands.js.flow +151 -0
- package/lib/parsers/typescript/components/componentsUtils.js +471 -0
- package/lib/parsers/typescript/components/componentsUtils.js.flow +521 -0
- package/lib/parsers/typescript/components/events.js +240 -0
- package/lib/parsers/typescript/components/events.js.flow +262 -0
- package/lib/parsers/typescript/components/extends.js +88 -0
- package/lib/parsers/typescript/components/extends.js.flow +103 -0
- package/lib/parsers/typescript/components/index.js +277 -0
- package/lib/parsers/typescript/components/index.js.flow +239 -0
- package/lib/parsers/typescript/components/options.js +72 -0
- package/lib/parsers/typescript/components/options.js.flow +87 -0
- package/lib/parsers/typescript/components/props.js +39 -0
- package/lib/parsers/typescript/components/props.js.flow +48 -0
- package/lib/parsers/typescript/components/schema.js +106 -0
- package/lib/parsers/typescript/components/schema.js.flow +62 -0
- package/lib/parsers/typescript/index.js +85 -0
- package/lib/parsers/typescript/index.js.flow +94 -0
- package/lib/parsers/typescript/modules/__test_fixtures__/failures.js +160 -0
- package/lib/parsers/typescript/modules/__test_fixtures__/failures.js.flow +167 -0
- package/lib/parsers/typescript/modules/__test_fixtures__/fixtures.js +701 -0
- package/lib/parsers/typescript/modules/__test_fixtures__/fixtures.js.flow +727 -0
- package/lib/parsers/typescript/modules/index.js +543 -0
- package/lib/parsers/typescript/modules/index.js.flow +435 -0
- package/lib/parsers/typescript/parseTopLevelType.js +203 -0
- package/lib/parsers/typescript/parseTopLevelType.js.flow +243 -0
- package/lib/parsers/typescript/parser.js +105 -0
- package/lib/parsers/typescript/parser.js.flow +87 -0
- package/lib/parsers/typescript/utils.js +101 -0
- package/lib/parsers/typescript/utils.js.flow +115 -0
- package/lib/parsers/utils.js +273 -0
- package/lib/parsers/utils.js.flow +266 -0
- package/package.json +45 -0
|
@@ -0,0 +1,350 @@
|
|
|
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
|
+
class ParserError extends Error {
|
|
14
|
+
constructor(nativeModuleName, astNodeOrNodes, message) {
|
|
15
|
+
super(`Module ${nativeModuleName}: ${message}`);
|
|
16
|
+
this.nodes = Array.isArray(astNodeOrNodes)
|
|
17
|
+
? astNodeOrNodes
|
|
18
|
+
: [astNodeOrNodes];
|
|
19
|
+
|
|
20
|
+
// assign the error class name in your custom error (as a shortcut)
|
|
21
|
+
this.name = this.constructor.name;
|
|
22
|
+
|
|
23
|
+
// capturing the stack trace keeps the reference to your error class
|
|
24
|
+
Error.captureStackTrace(this, this.constructor);
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
class MisnamedModuleInterfaceParserError extends ParserError {
|
|
28
|
+
constructor(nativeModuleName, id, language) {
|
|
29
|
+
super(
|
|
30
|
+
nativeModuleName,
|
|
31
|
+
id,
|
|
32
|
+
`All ${language} interfaces extending TurboModule must be called 'Spec'. Please rename ${language} interface '${id.name}' to 'Spec'.`,
|
|
33
|
+
);
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
class ModuleInterfaceNotFoundParserError extends ParserError {
|
|
37
|
+
constructor(nativeModuleName, ast, language) {
|
|
38
|
+
super(
|
|
39
|
+
nativeModuleName,
|
|
40
|
+
ast,
|
|
41
|
+
`No ${language} interfaces extending TurboModule were detected in this NativeModule spec.`,
|
|
42
|
+
);
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
class MoreThanOneModuleInterfaceParserError extends ParserError {
|
|
46
|
+
constructor(nativeModuleName, flowModuleInterfaces, names, language) {
|
|
47
|
+
const finalName = names[names.length - 1];
|
|
48
|
+
const allButLastName = names.slice(0, -1);
|
|
49
|
+
const quote = x => `'${x}'`;
|
|
50
|
+
const nameStr =
|
|
51
|
+
allButLastName.map(quote).join(', ') + ', and ' + quote(finalName);
|
|
52
|
+
super(
|
|
53
|
+
nativeModuleName,
|
|
54
|
+
flowModuleInterfaces,
|
|
55
|
+
`Every NativeModule spec file must declare exactly one NativeModule ${language} interface. This file declares ${names.length}: ${nameStr}. Please remove the extraneous ${language} interface declarations.`,
|
|
56
|
+
);
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
class UnsupportedModulePropertyParserError extends ParserError {
|
|
60
|
+
constructor(
|
|
61
|
+
nativeModuleName,
|
|
62
|
+
propertyValue,
|
|
63
|
+
propertyName,
|
|
64
|
+
invalidPropertyValueType,
|
|
65
|
+
language,
|
|
66
|
+
) {
|
|
67
|
+
super(
|
|
68
|
+
nativeModuleName,
|
|
69
|
+
propertyValue,
|
|
70
|
+
`${language} interfaces extending TurboModule must only contain 'FunctionTypeAnnotation's. Property '${propertyName}' refers to a '${invalidPropertyValueType}'.`,
|
|
71
|
+
);
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
class UnsupportedTypeAnnotationParserError extends ParserError {
|
|
75
|
+
constructor(nativeModuleName, typeAnnotation, language) {
|
|
76
|
+
super(
|
|
77
|
+
nativeModuleName,
|
|
78
|
+
typeAnnotation,
|
|
79
|
+
`${language} type annotation '${typeAnnotation.type}' is unsupported in NativeModule specs.`,
|
|
80
|
+
);
|
|
81
|
+
this.typeAnnotationType = typeAnnotation.type;
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
class UnsupportedGenericParserError extends ParserError {
|
|
85
|
+
// +genericName: string;
|
|
86
|
+
constructor(nativeModuleName, genericTypeAnnotation, parser) {
|
|
87
|
+
const genericName = parser.nameForGenericTypeAnnotation(
|
|
88
|
+
genericTypeAnnotation,
|
|
89
|
+
);
|
|
90
|
+
super(
|
|
91
|
+
nativeModuleName,
|
|
92
|
+
genericTypeAnnotation,
|
|
93
|
+
`Unrecognized generic type '${genericName}' in NativeModule spec.`,
|
|
94
|
+
);
|
|
95
|
+
|
|
96
|
+
// this.genericName = genericName;
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
class MissingTypeParameterGenericParserError extends ParserError {
|
|
101
|
+
constructor(nativeModuleName, genericTypeAnnotation, parser) {
|
|
102
|
+
const genericName = parser.nameForGenericTypeAnnotation(
|
|
103
|
+
genericTypeAnnotation,
|
|
104
|
+
);
|
|
105
|
+
super(
|
|
106
|
+
nativeModuleName,
|
|
107
|
+
genericTypeAnnotation,
|
|
108
|
+
`Generic '${genericName}' must have type parameters.`,
|
|
109
|
+
);
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
class MoreThanOneTypeParameterGenericParserError extends ParserError {
|
|
113
|
+
constructor(nativeModuleName, genericTypeAnnotation, parser) {
|
|
114
|
+
const genericName = parser.nameForGenericTypeAnnotation(
|
|
115
|
+
genericTypeAnnotation,
|
|
116
|
+
);
|
|
117
|
+
super(
|
|
118
|
+
nativeModuleName,
|
|
119
|
+
genericTypeAnnotation,
|
|
120
|
+
`Generic '${genericName}' must have exactly one type parameter.`,
|
|
121
|
+
);
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
/**
|
|
126
|
+
* Array parsing errors
|
|
127
|
+
*/
|
|
128
|
+
|
|
129
|
+
class UnsupportedArrayElementTypeAnnotationParserError extends ParserError {
|
|
130
|
+
constructor(
|
|
131
|
+
nativeModuleName,
|
|
132
|
+
arrayElementTypeAST,
|
|
133
|
+
arrayType,
|
|
134
|
+
invalidArrayElementType,
|
|
135
|
+
language,
|
|
136
|
+
) {
|
|
137
|
+
super(
|
|
138
|
+
nativeModuleName,
|
|
139
|
+
arrayElementTypeAST,
|
|
140
|
+
`${arrayType} element types cannot be '${invalidArrayElementType}'.`,
|
|
141
|
+
);
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
/**
|
|
146
|
+
* Object parsing errors
|
|
147
|
+
*/
|
|
148
|
+
|
|
149
|
+
class UnsupportedObjectPropertyTypeAnnotationParserError extends ParserError {
|
|
150
|
+
constructor(nativeModuleName, propertyAST, invalidPropertyType, language) {
|
|
151
|
+
let message = `'ObjectTypeAnnotation' cannot contain '${invalidPropertyType}'.`;
|
|
152
|
+
if (
|
|
153
|
+
invalidPropertyType === 'ObjectTypeSpreadProperty' &&
|
|
154
|
+
language !== 'TypeScript'
|
|
155
|
+
) {
|
|
156
|
+
message = "Object spread isn't supported in 'ObjectTypeAnnotation's.";
|
|
157
|
+
}
|
|
158
|
+
super(nativeModuleName, propertyAST, message);
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
class UnsupportedObjectPropertyValueTypeAnnotationParserError extends ParserError {
|
|
162
|
+
constructor(
|
|
163
|
+
nativeModuleName,
|
|
164
|
+
propertyValueAST,
|
|
165
|
+
propertyName,
|
|
166
|
+
invalidPropertyValueType,
|
|
167
|
+
language,
|
|
168
|
+
) {
|
|
169
|
+
super(
|
|
170
|
+
nativeModuleName,
|
|
171
|
+
propertyValueAST,
|
|
172
|
+
`Object property '${propertyName}' cannot have type '${invalidPropertyValueType}'.`,
|
|
173
|
+
);
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
|
|
177
|
+
/**
|
|
178
|
+
* Function parsing errors
|
|
179
|
+
*/
|
|
180
|
+
|
|
181
|
+
class UnnamedFunctionParamParserError extends ParserError {
|
|
182
|
+
constructor(functionParam, nativeModuleName, language) {
|
|
183
|
+
super(
|
|
184
|
+
nativeModuleName,
|
|
185
|
+
functionParam,
|
|
186
|
+
'All function parameters must be named.',
|
|
187
|
+
);
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
class UnsupportedFunctionParamTypeAnnotationParserError extends ParserError {
|
|
191
|
+
constructor(
|
|
192
|
+
nativeModuleName,
|
|
193
|
+
flowParamTypeAnnotation,
|
|
194
|
+
paramName,
|
|
195
|
+
invalidParamType,
|
|
196
|
+
) {
|
|
197
|
+
super(
|
|
198
|
+
nativeModuleName,
|
|
199
|
+
flowParamTypeAnnotation,
|
|
200
|
+
`Function parameter '${paramName}' cannot have type '${invalidParamType}'.`,
|
|
201
|
+
);
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
class UnsupportedFunctionReturnTypeAnnotationParserError extends ParserError {
|
|
205
|
+
constructor(
|
|
206
|
+
nativeModuleName,
|
|
207
|
+
flowReturnTypeAnnotation,
|
|
208
|
+
invalidReturnType,
|
|
209
|
+
language,
|
|
210
|
+
) {
|
|
211
|
+
super(
|
|
212
|
+
nativeModuleName,
|
|
213
|
+
flowReturnTypeAnnotation,
|
|
214
|
+
`Function return cannot have type '${invalidReturnType}'.`,
|
|
215
|
+
);
|
|
216
|
+
}
|
|
217
|
+
}
|
|
218
|
+
|
|
219
|
+
/**
|
|
220
|
+
* Enum parsing errors
|
|
221
|
+
*/
|
|
222
|
+
|
|
223
|
+
class UnsupportedEnumDeclarationParserError extends ParserError {
|
|
224
|
+
constructor(nativeModuleName, arrayElementTypeAST, memberType, language) {
|
|
225
|
+
super(
|
|
226
|
+
nativeModuleName,
|
|
227
|
+
arrayElementTypeAST,
|
|
228
|
+
`Unexpected enum member type ${memberType}. Only string and number enum members are supported`,
|
|
229
|
+
);
|
|
230
|
+
}
|
|
231
|
+
}
|
|
232
|
+
|
|
233
|
+
/**
|
|
234
|
+
* Union parsing errors
|
|
235
|
+
*/
|
|
236
|
+
|
|
237
|
+
class UnsupportedUnionTypeAnnotationParserError extends ParserError {
|
|
238
|
+
constructor(nativeModuleName, arrayElementTypeAST, types, language) {
|
|
239
|
+
super(
|
|
240
|
+
nativeModuleName,
|
|
241
|
+
arrayElementTypeAST,
|
|
242
|
+
`Union members must be of the same type, but multiple types were found ${types.join(
|
|
243
|
+
', ',
|
|
244
|
+
)}'.`,
|
|
245
|
+
);
|
|
246
|
+
}
|
|
247
|
+
}
|
|
248
|
+
|
|
249
|
+
/**
|
|
250
|
+
* Module parsing errors
|
|
251
|
+
*/
|
|
252
|
+
|
|
253
|
+
class UnusedModuleInterfaceParserError extends ParserError {
|
|
254
|
+
constructor(nativeModuleName, flowInterface, language) {
|
|
255
|
+
super(
|
|
256
|
+
nativeModuleName,
|
|
257
|
+
flowInterface,
|
|
258
|
+
"Unused NativeModule spec. Please load the NativeModule by calling TurboModuleRegistry.get<Spec>('<moduleName>').",
|
|
259
|
+
);
|
|
260
|
+
}
|
|
261
|
+
}
|
|
262
|
+
class MoreThanOneModuleRegistryCallsParserError extends ParserError {
|
|
263
|
+
constructor(nativeModuleName, flowCallExpressions, numCalls, language) {
|
|
264
|
+
super(
|
|
265
|
+
nativeModuleName,
|
|
266
|
+
flowCallExpressions,
|
|
267
|
+
`Every NativeModule spec file must contain exactly one NativeModule load. This file contains ${numCalls}. Please simplify this spec file, splitting it as necessary, to remove the extraneous loads.`,
|
|
268
|
+
);
|
|
269
|
+
}
|
|
270
|
+
}
|
|
271
|
+
class UntypedModuleRegistryCallParserError extends ParserError {
|
|
272
|
+
constructor(
|
|
273
|
+
nativeModuleName,
|
|
274
|
+
flowCallExpression,
|
|
275
|
+
methodName,
|
|
276
|
+
moduleName,
|
|
277
|
+
language,
|
|
278
|
+
) {
|
|
279
|
+
super(
|
|
280
|
+
nativeModuleName,
|
|
281
|
+
flowCallExpression,
|
|
282
|
+
`Please type this NativeModule load: TurboModuleRegistry.${methodName}<Spec>('${moduleName}').`,
|
|
283
|
+
);
|
|
284
|
+
}
|
|
285
|
+
}
|
|
286
|
+
class IncorrectModuleRegistryCallTypeParameterParserError extends ParserError {
|
|
287
|
+
constructor(
|
|
288
|
+
nativeModuleName,
|
|
289
|
+
flowTypeArguments,
|
|
290
|
+
methodName,
|
|
291
|
+
moduleName,
|
|
292
|
+
language,
|
|
293
|
+
) {
|
|
294
|
+
super(
|
|
295
|
+
nativeModuleName,
|
|
296
|
+
flowTypeArguments,
|
|
297
|
+
`Please change these type arguments to reflect TurboModuleRegistry.${methodName}<Spec>('${moduleName}').`,
|
|
298
|
+
);
|
|
299
|
+
}
|
|
300
|
+
}
|
|
301
|
+
class IncorrectModuleRegistryCallArityParserError extends ParserError {
|
|
302
|
+
constructor(
|
|
303
|
+
nativeModuleName,
|
|
304
|
+
flowCallExpression,
|
|
305
|
+
methodName,
|
|
306
|
+
incorrectArity,
|
|
307
|
+
language,
|
|
308
|
+
) {
|
|
309
|
+
super(
|
|
310
|
+
nativeModuleName,
|
|
311
|
+
flowCallExpression,
|
|
312
|
+
`Please call TurboModuleRegistry.${methodName}<Spec>() with exactly one argument. Detected ${incorrectArity}.`,
|
|
313
|
+
);
|
|
314
|
+
}
|
|
315
|
+
}
|
|
316
|
+
class IncorrectModuleRegistryCallArgumentTypeParserError extends ParserError {
|
|
317
|
+
constructor(nativeModuleName, flowArgument, methodName, type, language) {
|
|
318
|
+
const a = /[aeiouy]/.test(type.toLowerCase()) ? 'an' : 'a';
|
|
319
|
+
super(
|
|
320
|
+
nativeModuleName,
|
|
321
|
+
flowArgument,
|
|
322
|
+
`Please call TurboModuleRegistry.${methodName}<Spec>() with a string literal. Detected ${a} '${type}'`,
|
|
323
|
+
);
|
|
324
|
+
}
|
|
325
|
+
}
|
|
326
|
+
module.exports = {
|
|
327
|
+
ParserError,
|
|
328
|
+
MissingTypeParameterGenericParserError,
|
|
329
|
+
MoreThanOneTypeParameterGenericParserError,
|
|
330
|
+
MisnamedModuleInterfaceParserError,
|
|
331
|
+
ModuleInterfaceNotFoundParserError,
|
|
332
|
+
MoreThanOneModuleInterfaceParserError,
|
|
333
|
+
UnnamedFunctionParamParserError,
|
|
334
|
+
UnsupportedArrayElementTypeAnnotationParserError,
|
|
335
|
+
UnsupportedGenericParserError,
|
|
336
|
+
UnsupportedTypeAnnotationParserError,
|
|
337
|
+
UnsupportedFunctionParamTypeAnnotationParserError,
|
|
338
|
+
UnsupportedFunctionReturnTypeAnnotationParserError,
|
|
339
|
+
UnsupportedEnumDeclarationParserError,
|
|
340
|
+
UnsupportedUnionTypeAnnotationParserError,
|
|
341
|
+
UnsupportedModulePropertyParserError,
|
|
342
|
+
UnsupportedObjectPropertyTypeAnnotationParserError,
|
|
343
|
+
UnsupportedObjectPropertyValueTypeAnnotationParserError,
|
|
344
|
+
UnusedModuleInterfaceParserError,
|
|
345
|
+
MoreThanOneModuleRegistryCallsParserError,
|
|
346
|
+
UntypedModuleRegistryCallParserError,
|
|
347
|
+
IncorrectModuleRegistryCallTypeParameterParserError,
|
|
348
|
+
IncorrectModuleRegistryCallArityParserError,
|
|
349
|
+
IncorrectModuleRegistryCallArgumentTypeParserError,
|
|
350
|
+
};
|