@react-native/codegen 0.77.0-nightly-20241104-7211119d2 → 0.77.0-nightly-20241105-fe656be26
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 -3
- package/lib/CodegenSchema.js.flow +12 -7
- package/lib/generators/modules/GenerateModuleCpp.js +2 -0
- package/lib/generators/modules/GenerateModuleCpp.js.flow +2 -0
- package/lib/generators/modules/GenerateModuleH.js +2 -0
- package/lib/generators/modules/GenerateModuleH.js.flow +4 -2
- package/lib/generators/modules/GenerateModuleJavaSpec.js +7 -0
- package/lib/generators/modules/GenerateModuleJavaSpec.js.flow +7 -0
- package/lib/generators/modules/GenerateModuleJniCpp.js +6 -0
- package/lib/generators/modules/GenerateModuleJniCpp.js.flow +6 -0
- package/lib/generators/modules/GenerateModuleObjCpp/StructCollector.js.flow +2 -0
- package/lib/generators/modules/GenerateModuleObjCpp/header/serializeConstantsStruct.js +4 -0
- package/lib/generators/modules/GenerateModuleObjCpp/header/serializeConstantsStruct.js.flow +4 -0
- package/lib/generators/modules/GenerateModuleObjCpp/header/serializeRegularStruct.js +4 -0
- package/lib/generators/modules/GenerateModuleObjCpp/header/serializeRegularStruct.js.flow +4 -0
- package/lib/generators/modules/GenerateModuleObjCpp/serializeEventEmitter.js +1 -0
- package/lib/generators/modules/GenerateModuleObjCpp/serializeEventEmitter.js.flow +1 -0
- package/lib/generators/modules/GenerateModuleObjCpp/serializeMethod.js +6 -0
- package/lib/generators/modules/GenerateModuleObjCpp/serializeMethod.js.flow +6 -0
- package/lib/parsers/flow/modules/__test_fixtures__/fixtures.js +1 -0
- package/lib/parsers/flow/modules/__test_fixtures__/fixtures.js.flow +1 -0
- package/lib/parsers/flow/modules/index.js +4 -0
- package/lib/parsers/flow/modules/index.js.flow +4 -0
- package/lib/parsers/flow/parser.js.flow +4 -2
- package/lib/parsers/parser.js.flow +4 -2
- package/lib/parsers/parserMock.js.flow +4 -2
- package/lib/parsers/parsers-primitives.js +7 -0
- package/lib/parsers/parsers-primitives.js.flow +12 -0
- package/lib/parsers/typescript/modules/__test_fixtures__/fixtures.js +1 -0
- package/lib/parsers/typescript/modules/__test_fixtures__/fixtures.js.flow +1 -0
- package/lib/parsers/typescript/modules/index.js +4 -0
- package/lib/parsers/typescript/modules/index.js.flow +4 -0
- package/lib/parsers/typescript/parser.js.flow +4 -2
- package/package.json +1 -1
package/lib/CodegenSchema.d.ts
CHANGED
|
@@ -286,6 +286,11 @@ export interface UnsafeAnyTypeAnnotation {
|
|
|
286
286
|
readonly type: 'AnyTypeAnnotation',
|
|
287
287
|
}
|
|
288
288
|
|
|
289
|
+
export interface NativeModuleNumberLiteralTypeAnnotation {
|
|
290
|
+
readonly type: 'NumberLiteralTypeAnnotation';
|
|
291
|
+
readonly value: number;
|
|
292
|
+
}
|
|
293
|
+
|
|
289
294
|
export interface NativeModuleStringTypeAnnotation {
|
|
290
295
|
readonly type: 'StringTypeAnnotation';
|
|
291
296
|
}
|
|
@@ -320,10 +325,10 @@ export interface NativeModuleBooleanTypeAnnotation {
|
|
|
320
325
|
readonly type: 'BooleanTypeAnnotation';
|
|
321
326
|
}
|
|
322
327
|
|
|
323
|
-
export type
|
|
328
|
+
export type NativeModuleEnumMember = {
|
|
324
329
|
readonly name: string;
|
|
325
330
|
readonly value: string | number;
|
|
326
|
-
}
|
|
331
|
+
};
|
|
327
332
|
|
|
328
333
|
export type NativeModuleEnumMemberType =
|
|
329
334
|
| 'NumberTypeAnnotation'
|
|
@@ -339,7 +344,7 @@ export interface NativeModuleEnumDeclarationWithMembers {
|
|
|
339
344
|
name: string;
|
|
340
345
|
type: 'EnumDeclarationWithMembers';
|
|
341
346
|
memberType: NativeModuleEnumMemberType;
|
|
342
|
-
members:
|
|
347
|
+
members: readonly NativeModuleEnumMember[];
|
|
343
348
|
}
|
|
344
349
|
|
|
345
350
|
export interface NativeModuleGenericObjectTypeAnnotation {
|
|
@@ -380,6 +385,7 @@ export type NativeModuleEventEmitterBaseTypeAnnotation =
|
|
|
380
385
|
| NativeModuleFloatTypeAnnotation
|
|
381
386
|
| NativeModuleInt32TypeAnnotation
|
|
382
387
|
| NativeModuleNumberTypeAnnotation
|
|
388
|
+
| NativeModuleNumberLiteralTypeAnnotation
|
|
383
389
|
| NativeModuleStringTypeAnnotation
|
|
384
390
|
| NativeModuleStringLiteralTypeAnnotation
|
|
385
391
|
| NativeModuleStringLiteralUnionTypeAnnotation
|
|
@@ -399,6 +405,7 @@ export type NativeModuleBaseTypeAnnotation =
|
|
|
399
405
|
| NativeModuleStringLiteralTypeAnnotation
|
|
400
406
|
| NativeModuleStringLiteralUnionTypeAnnotation
|
|
401
407
|
| NativeModuleNumberTypeAnnotation
|
|
408
|
+
| NativeModuleNumberLiteralTypeAnnotation
|
|
402
409
|
| NativeModuleInt32TypeAnnotation
|
|
403
410
|
| NativeModuleDoubleTypeAnnotation
|
|
404
411
|
| NativeModuleFloatTypeAnnotation
|
|
@@ -37,6 +37,11 @@ export type Int32TypeAnnotation = $ReadOnly<{
|
|
|
37
37
|
type: 'Int32TypeAnnotation',
|
|
38
38
|
}>;
|
|
39
39
|
|
|
40
|
+
export type NumberLiteralTypeAnnotation = $ReadOnly<{
|
|
41
|
+
type: 'NumberLiteralTypeAnnotation',
|
|
42
|
+
value: number,
|
|
43
|
+
}>;
|
|
44
|
+
|
|
40
45
|
export type StringTypeAnnotation = $ReadOnly<{
|
|
41
46
|
type: 'StringTypeAnnotation',
|
|
42
47
|
}>;
|
|
@@ -304,12 +309,10 @@ export type NativeModuleNumberTypeAnnotation = $ReadOnly<{
|
|
|
304
309
|
type: 'NumberTypeAnnotation',
|
|
305
310
|
}>;
|
|
306
311
|
|
|
307
|
-
export type
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
}>,
|
|
312
|
-
>;
|
|
312
|
+
export type NativeModuleEnumMember = {
|
|
313
|
+
name: string,
|
|
314
|
+
value: string | number,
|
|
315
|
+
};
|
|
313
316
|
|
|
314
317
|
export type NativeModuleEnumMemberType =
|
|
315
318
|
| 'NumberTypeAnnotation'
|
|
@@ -325,7 +328,7 @@ export type NativeModuleEnumDeclarationWithMembers = {
|
|
|
325
328
|
name: string,
|
|
326
329
|
type: 'EnumDeclarationWithMembers',
|
|
327
330
|
memberType: NativeModuleEnumMemberType,
|
|
328
|
-
members:
|
|
331
|
+
members: $ReadOnlyArray<NativeModuleEnumMember>,
|
|
329
332
|
};
|
|
330
333
|
|
|
331
334
|
export type NativeModuleGenericObjectTypeAnnotation = $ReadOnly<{
|
|
@@ -366,6 +369,7 @@ type NativeModuleEventEmitterBaseTypeAnnotation =
|
|
|
366
369
|
| FloatTypeAnnotation
|
|
367
370
|
| Int32TypeAnnotation
|
|
368
371
|
| NativeModuleNumberTypeAnnotation
|
|
372
|
+
| NumberLiteralTypeAnnotation
|
|
369
373
|
| StringTypeAnnotation
|
|
370
374
|
| StringLiteralTypeAnnotation
|
|
371
375
|
| StringLiteralUnionTypeAnnotation
|
|
@@ -385,6 +389,7 @@ export type NativeModuleBaseTypeAnnotation =
|
|
|
385
389
|
| StringLiteralTypeAnnotation
|
|
386
390
|
| StringLiteralUnionTypeAnnotation
|
|
387
391
|
| NativeModuleNumberTypeAnnotation
|
|
392
|
+
| NumberLiteralTypeAnnotation
|
|
388
393
|
| Int32TypeAnnotation
|
|
389
394
|
| DoubleTypeAnnotation
|
|
390
395
|
| FloatTypeAnnotation
|
|
@@ -218,6 +218,8 @@ function serializeArg(moduleName, arg, index, resolveAlias, enumMap) {
|
|
|
218
218
|
return wrap(val => `${val}.asNumber()`);
|
|
219
219
|
case 'Int32TypeAnnotation':
|
|
220
220
|
return wrap(val => `${val}.asNumber()`);
|
|
221
|
+
case 'NumberLiteralTypeAnnotation':
|
|
222
|
+
return wrap(val => `${val}.asNumber()`);
|
|
221
223
|
case 'ArrayTypeAnnotation':
|
|
222
224
|
return wrap(val => `${val}.asObject(rt).asArray(rt)`);
|
|
223
225
|
case 'FunctionTypeAnnotation':
|
|
@@ -186,6 +186,8 @@ function serializeArg(
|
|
|
186
186
|
return wrap(val => `${val}.asNumber()`);
|
|
187
187
|
case 'Int32TypeAnnotation':
|
|
188
188
|
return wrap(val => `${val}.asNumber()`);
|
|
189
|
+
case 'NumberLiteralTypeAnnotation':
|
|
190
|
+
return wrap(val => `${val}.asNumber()`);
|
|
189
191
|
case 'ArrayTypeAnnotation':
|
|
190
192
|
return wrap(val => `${val}.asObject(rt).asArray(rt)`);
|
|
191
193
|
case 'FunctionTypeAnnotation':
|
|
@@ -219,6 +219,8 @@ function translatePrimitiveJSTypeToCpp(
|
|
|
219
219
|
return wrapOptional('jsi::String', isRequired);
|
|
220
220
|
case 'NumberTypeAnnotation':
|
|
221
221
|
return wrapOptional('double', isRequired);
|
|
222
|
+
case 'NumberLiteralTypeAnnotation':
|
|
223
|
+
return wrapOptional('double', isRequired);
|
|
222
224
|
case 'DoubleTypeAnnotation':
|
|
223
225
|
return wrapOptional('double', isRequired);
|
|
224
226
|
case 'FloatTypeAnnotation':
|
|
@@ -16,7 +16,7 @@ import type {
|
|
|
16
16
|
import type {
|
|
17
17
|
NativeModuleAliasMap,
|
|
18
18
|
NativeModuleEnumMap,
|
|
19
|
-
|
|
19
|
+
NativeModuleEnumMember,
|
|
20
20
|
NativeModuleEnumMemberType,
|
|
21
21
|
NativeModuleEventEmitterShape,
|
|
22
22
|
NativeModuleFunctionTypeAnnotation,
|
|
@@ -179,6 +179,8 @@ function translatePrimitiveJSTypeToCpp(
|
|
|
179
179
|
return wrapOptional('jsi::String', isRequired);
|
|
180
180
|
case 'NumberTypeAnnotation':
|
|
181
181
|
return wrapOptional('double', isRequired);
|
|
182
|
+
case 'NumberLiteralTypeAnnotation':
|
|
183
|
+
return wrapOptional('double', isRequired);
|
|
182
184
|
case 'DoubleTypeAnnotation':
|
|
183
185
|
return wrapOptional('double', isRequired);
|
|
184
186
|
case 'FloatTypeAnnotation':
|
|
@@ -407,7 +409,7 @@ struct Bridging<${enumName}> {
|
|
|
407
409
|
function generateEnum(
|
|
408
410
|
hasteModuleName: string,
|
|
409
411
|
origEnumName: string,
|
|
410
|
-
members:
|
|
412
|
+
members: $ReadOnlyArray<NativeModuleEnumMember>,
|
|
411
413
|
memberType: NativeModuleEnumMemberType,
|
|
412
414
|
): string {
|
|
413
415
|
const enumName = getEnumName(hasteModuleName, origEnumName);
|
|
@@ -171,6 +171,7 @@ function translateEventEmitterTypeToJavaType(eventEmitter, imports) {
|
|
|
171
171
|
case 'StringLiteralUnionTypeAnnotation':
|
|
172
172
|
return 'String';
|
|
173
173
|
case 'NumberTypeAnnotation':
|
|
174
|
+
case 'NumberLiteralTypeAnnotation':
|
|
174
175
|
case 'FloatTypeAnnotation':
|
|
175
176
|
case 'DoubleTypeAnnotation':
|
|
176
177
|
case 'Int32TypeAnnotation':
|
|
@@ -239,6 +240,8 @@ function translateFunctionParamToJavaType(
|
|
|
239
240
|
return wrapOptional('String', isRequired);
|
|
240
241
|
case 'NumberTypeAnnotation':
|
|
241
242
|
return wrapOptional('double', isRequired);
|
|
243
|
+
case 'NumberLiteralTypeAnnotation':
|
|
244
|
+
return wrapOptional('double', isRequired);
|
|
242
245
|
case 'FloatTypeAnnotation':
|
|
243
246
|
return wrapOptional('double', isRequired);
|
|
244
247
|
case 'DoubleTypeAnnotation':
|
|
@@ -329,6 +332,8 @@ function translateFunctionReturnTypeToJavaType(
|
|
|
329
332
|
return wrapOptional('String', isRequired);
|
|
330
333
|
case 'NumberTypeAnnotation':
|
|
331
334
|
return wrapOptional('double', isRequired);
|
|
335
|
+
case 'NumberLiteralTypeAnnotation':
|
|
336
|
+
return wrapOptional('double', isRequired);
|
|
332
337
|
case 'FloatTypeAnnotation':
|
|
333
338
|
return wrapOptional('double', isRequired);
|
|
334
339
|
case 'DoubleTypeAnnotation':
|
|
@@ -402,6 +407,8 @@ function getFalsyReturnStatementFromReturnType(
|
|
|
402
407
|
return '';
|
|
403
408
|
case 'NumberTypeAnnotation':
|
|
404
409
|
return nullable ? 'return null;' : 'return 0;';
|
|
410
|
+
case 'NumberLiteralTypeAnnotation':
|
|
411
|
+
return nullable ? 'return null;' : 'return 0;';
|
|
405
412
|
case 'FloatTypeAnnotation':
|
|
406
413
|
return nullable ? 'return null;' : 'return 0.0;';
|
|
407
414
|
case 'DoubleTypeAnnotation':
|
|
@@ -136,6 +136,7 @@ function translateEventEmitterTypeToJavaType(
|
|
|
136
136
|
case 'StringLiteralUnionTypeAnnotation':
|
|
137
137
|
return 'String';
|
|
138
138
|
case 'NumberTypeAnnotation':
|
|
139
|
+
case 'NumberLiteralTypeAnnotation':
|
|
139
140
|
case 'FloatTypeAnnotation':
|
|
140
141
|
case 'DoubleTypeAnnotation':
|
|
141
142
|
case 'Int32TypeAnnotation':
|
|
@@ -203,6 +204,8 @@ function translateFunctionParamToJavaType(
|
|
|
203
204
|
return wrapOptional('String', isRequired);
|
|
204
205
|
case 'NumberTypeAnnotation':
|
|
205
206
|
return wrapOptional('double', isRequired);
|
|
207
|
+
case 'NumberLiteralTypeAnnotation':
|
|
208
|
+
return wrapOptional('double', isRequired);
|
|
206
209
|
case 'FloatTypeAnnotation':
|
|
207
210
|
return wrapOptional('double', isRequired);
|
|
208
211
|
case 'DoubleTypeAnnotation':
|
|
@@ -297,6 +300,8 @@ function translateFunctionReturnTypeToJavaType(
|
|
|
297
300
|
return wrapOptional('String', isRequired);
|
|
298
301
|
case 'NumberTypeAnnotation':
|
|
299
302
|
return wrapOptional('double', isRequired);
|
|
303
|
+
case 'NumberLiteralTypeAnnotation':
|
|
304
|
+
return wrapOptional('double', isRequired);
|
|
300
305
|
case 'FloatTypeAnnotation':
|
|
301
306
|
return wrapOptional('double', isRequired);
|
|
302
307
|
case 'DoubleTypeAnnotation':
|
|
@@ -373,6 +378,8 @@ function getFalsyReturnStatementFromReturnType(
|
|
|
373
378
|
return '';
|
|
374
379
|
case 'NumberTypeAnnotation':
|
|
375
380
|
return nullable ? 'return null;' : 'return 0;';
|
|
381
|
+
case 'NumberLiteralTypeAnnotation':
|
|
382
|
+
return nullable ? 'return null;' : 'return 0;';
|
|
376
383
|
case 'FloatTypeAnnotation':
|
|
377
384
|
return nullable ? 'return null;' : 'return 0.0;';
|
|
378
385
|
case 'DoubleTypeAnnotation':
|
|
@@ -212,6 +212,8 @@ function translateReturnTypeToKind(nullableTypeAnnotation, resolveAlias) {
|
|
|
212
212
|
}
|
|
213
213
|
case 'NumberTypeAnnotation':
|
|
214
214
|
return 'NumberKind';
|
|
215
|
+
case 'NumberLiteralTypeAnnotation':
|
|
216
|
+
return 'NumberKind';
|
|
215
217
|
case 'DoubleTypeAnnotation':
|
|
216
218
|
return 'NumberKind';
|
|
217
219
|
case 'FloatTypeAnnotation':
|
|
@@ -290,6 +292,8 @@ function translateParamTypeToJniType(param, resolveAlias) {
|
|
|
290
292
|
}
|
|
291
293
|
case 'NumberTypeAnnotation':
|
|
292
294
|
return !isRequired ? 'Ljava/lang/Double;' : 'D';
|
|
295
|
+
case 'NumberLiteralTypeAnnotation':
|
|
296
|
+
return !isRequired ? 'Ljava/lang/Double;' : 'D';
|
|
293
297
|
case 'DoubleTypeAnnotation':
|
|
294
298
|
return !isRequired ? 'Ljava/lang/Double;' : 'D';
|
|
295
299
|
case 'FloatTypeAnnotation':
|
|
@@ -367,6 +371,8 @@ function translateReturnTypeToJniType(nullableTypeAnnotation, resolveAlias) {
|
|
|
367
371
|
}
|
|
368
372
|
case 'NumberTypeAnnotation':
|
|
369
373
|
return nullable ? 'Ljava/lang/Double;' : 'D';
|
|
374
|
+
case 'NumberLiteralTypeAnnotation':
|
|
375
|
+
return nullable ? 'Ljava/lang/Double;' : 'D';
|
|
370
376
|
case 'DoubleTypeAnnotation':
|
|
371
377
|
return nullable ? 'Ljava/lang/Double;' : 'D';
|
|
372
378
|
case 'FloatTypeAnnotation':
|
|
@@ -197,6 +197,8 @@ function translateReturnTypeToKind(
|
|
|
197
197
|
}
|
|
198
198
|
case 'NumberTypeAnnotation':
|
|
199
199
|
return 'NumberKind';
|
|
200
|
+
case 'NumberLiteralTypeAnnotation':
|
|
201
|
+
return 'NumberKind';
|
|
200
202
|
case 'DoubleTypeAnnotation':
|
|
201
203
|
return 'NumberKind';
|
|
202
204
|
case 'FloatTypeAnnotation':
|
|
@@ -280,6 +282,8 @@ function translateParamTypeToJniType(
|
|
|
280
282
|
}
|
|
281
283
|
case 'NumberTypeAnnotation':
|
|
282
284
|
return !isRequired ? 'Ljava/lang/Double;' : 'D';
|
|
285
|
+
case 'NumberLiteralTypeAnnotation':
|
|
286
|
+
return !isRequired ? 'Ljava/lang/Double;' : 'D';
|
|
283
287
|
case 'DoubleTypeAnnotation':
|
|
284
288
|
return !isRequired ? 'Ljava/lang/Double;' : 'D';
|
|
285
289
|
case 'FloatTypeAnnotation':
|
|
@@ -360,6 +364,8 @@ function translateReturnTypeToJniType(
|
|
|
360
364
|
}
|
|
361
365
|
case 'NumberTypeAnnotation':
|
|
362
366
|
return nullable ? 'Ljava/lang/Double;' : 'D';
|
|
367
|
+
case 'NumberLiteralTypeAnnotation':
|
|
368
|
+
return nullable ? 'Ljava/lang/Double;' : 'D';
|
|
363
369
|
case 'DoubleTypeAnnotation':
|
|
364
370
|
return nullable ? 'Ljava/lang/Double;' : 'D';
|
|
365
371
|
case 'FloatTypeAnnotation':
|
|
@@ -23,6 +23,7 @@ import type {
|
|
|
23
23
|
NativeModuleObjectTypeAnnotation,
|
|
24
24
|
NativeModuleTypeAliasTypeAnnotation,
|
|
25
25
|
Nullable,
|
|
26
|
+
NumberLiteralTypeAnnotation,
|
|
26
27
|
ReservedTypeAnnotation,
|
|
27
28
|
StringLiteralTypeAnnotation,
|
|
28
29
|
StringLiteralUnionTypeAnnotation,
|
|
@@ -63,6 +64,7 @@ export type StructTypeAnnotation =
|
|
|
63
64
|
| StringLiteralTypeAnnotation
|
|
64
65
|
| StringLiteralUnionTypeAnnotation
|
|
65
66
|
| NativeModuleNumberTypeAnnotation
|
|
67
|
+
| NumberLiteralTypeAnnotation
|
|
66
68
|
| Int32TypeAnnotation
|
|
67
69
|
| DoubleTypeAnnotation
|
|
68
70
|
| FloatTypeAnnotation
|
|
@@ -163,6 +163,8 @@ function toObjCType(
|
|
|
163
163
|
return 'NSString *';
|
|
164
164
|
case 'NumberTypeAnnotation':
|
|
165
165
|
return wrapCxxOptional('double', isRequired);
|
|
166
|
+
case 'NumberLiteralTypeAnnotation':
|
|
167
|
+
return wrapCxxOptional('double', isRequired);
|
|
166
168
|
case 'FloatTypeAnnotation':
|
|
167
169
|
return wrapCxxOptional('double', isRequired);
|
|
168
170
|
case 'Int32TypeAnnotation':
|
|
@@ -245,6 +247,8 @@ function toObjCValue(
|
|
|
245
247
|
return value;
|
|
246
248
|
case 'NumberTypeAnnotation':
|
|
247
249
|
return wrapPrimitive('double');
|
|
250
|
+
case 'NumberLiteralTypeAnnotation':
|
|
251
|
+
return wrapPrimitive('double');
|
|
248
252
|
case 'FloatTypeAnnotation':
|
|
249
253
|
return wrapPrimitive('double');
|
|
250
254
|
case 'Int32TypeAnnotation':
|
|
@@ -100,6 +100,8 @@ function toObjCType(
|
|
|
100
100
|
return 'NSString *';
|
|
101
101
|
case 'NumberTypeAnnotation':
|
|
102
102
|
return wrapCxxOptional('double', isRequired);
|
|
103
|
+
case 'NumberLiteralTypeAnnotation':
|
|
104
|
+
return wrapCxxOptional('double', isRequired);
|
|
103
105
|
case 'FloatTypeAnnotation':
|
|
104
106
|
return wrapCxxOptional('double', isRequired);
|
|
105
107
|
case 'Int32TypeAnnotation':
|
|
@@ -183,6 +185,8 @@ function toObjCValue(
|
|
|
183
185
|
return value;
|
|
184
186
|
case 'NumberTypeAnnotation':
|
|
185
187
|
return wrapPrimitive('double');
|
|
188
|
+
case 'NumberLiteralTypeAnnotation':
|
|
189
|
+
return wrapPrimitive('double');
|
|
186
190
|
case 'FloatTypeAnnotation':
|
|
187
191
|
return wrapPrimitive('double');
|
|
188
192
|
case 'Int32TypeAnnotation':
|
|
@@ -151,6 +151,8 @@ function toObjCType(
|
|
|
151
151
|
return 'NSString *';
|
|
152
152
|
case 'NumberTypeAnnotation':
|
|
153
153
|
return wrapCxxOptional('double', isRequired);
|
|
154
|
+
case 'NumberLiteralTypeAnnotation':
|
|
155
|
+
return wrapCxxOptional('double', isRequired);
|
|
154
156
|
case 'FloatTypeAnnotation':
|
|
155
157
|
return wrapCxxOptional('double', isRequired);
|
|
156
158
|
case 'Int32TypeAnnotation':
|
|
@@ -234,6 +236,8 @@ function toObjCValue(
|
|
|
234
236
|
return RCTBridgingTo('String');
|
|
235
237
|
case 'NumberTypeAnnotation':
|
|
236
238
|
return RCTBridgingTo('Double');
|
|
239
|
+
case 'NumberLiteralTypeAnnotation':
|
|
240
|
+
return RCTBridgingTo('Double');
|
|
237
241
|
case 'FloatTypeAnnotation':
|
|
238
242
|
return RCTBridgingTo('Double');
|
|
239
243
|
case 'Int32TypeAnnotation':
|
|
@@ -91,6 +91,8 @@ function toObjCType(
|
|
|
91
91
|
return 'NSString *';
|
|
92
92
|
case 'NumberTypeAnnotation':
|
|
93
93
|
return wrapCxxOptional('double', isRequired);
|
|
94
|
+
case 'NumberLiteralTypeAnnotation':
|
|
95
|
+
return wrapCxxOptional('double', isRequired);
|
|
94
96
|
case 'FloatTypeAnnotation':
|
|
95
97
|
return wrapCxxOptional('double', isRequired);
|
|
96
98
|
case 'Int32TypeAnnotation':
|
|
@@ -173,6 +175,8 @@ function toObjCValue(
|
|
|
173
175
|
return RCTBridgingTo('String');
|
|
174
176
|
case 'NumberTypeAnnotation':
|
|
175
177
|
return RCTBridgingTo('Double');
|
|
178
|
+
case 'NumberLiteralTypeAnnotation':
|
|
179
|
+
return RCTBridgingTo('Double');
|
|
176
180
|
case 'FloatTypeAnnotation':
|
|
177
181
|
return RCTBridgingTo('Double');
|
|
178
182
|
case 'Int32TypeAnnotation':
|
|
@@ -20,6 +20,7 @@ function getEventEmitterTypeObjCType(eventEmitter) {
|
|
|
20
20
|
case 'StringLiteralUnionTypeAnnotation':
|
|
21
21
|
return 'NSString *_Nonnull';
|
|
22
22
|
case 'NumberTypeAnnotation':
|
|
23
|
+
case 'NumberLiteralTypeAnnotation':
|
|
23
24
|
return 'NSNumber *_Nonnull';
|
|
24
25
|
case 'BooleanTypeAnnotation':
|
|
25
26
|
return 'BOOL';
|
|
@@ -25,6 +25,7 @@ function getEventEmitterTypeObjCType(
|
|
|
25
25
|
case 'StringLiteralUnionTypeAnnotation':
|
|
26
26
|
return 'NSString *_Nonnull';
|
|
27
27
|
case 'NumberTypeAnnotation':
|
|
28
|
+
case 'NumberLiteralTypeAnnotation':
|
|
28
29
|
return 'NSNumber *_Nonnull';
|
|
29
30
|
case 'BooleanTypeAnnotation':
|
|
30
31
|
return 'BOOL';
|
|
@@ -303,6 +303,8 @@ function getParamObjCType(
|
|
|
303
303
|
return notStruct(wrapOptional('NSString *', !nullable));
|
|
304
304
|
case 'NumberTypeAnnotation':
|
|
305
305
|
return notStruct(isRequired ? 'double' : 'NSNumber *');
|
|
306
|
+
case 'NumberLiteralTypeAnnotation':
|
|
307
|
+
return notStruct(isRequired ? 'double' : 'NSNumber *');
|
|
306
308
|
case 'FloatTypeAnnotation':
|
|
307
309
|
return notStruct(isRequired ? 'float' : 'NSNumber *');
|
|
308
310
|
case 'DoubleTypeAnnotation':
|
|
@@ -381,6 +383,8 @@ function getReturnObjCType(methodName, nullableTypeAnnotation) {
|
|
|
381
383
|
return wrapOptional('NSString *', isRequired);
|
|
382
384
|
case 'NumberTypeAnnotation':
|
|
383
385
|
return wrapOptional('NSNumber *', isRequired);
|
|
386
|
+
case 'NumberLiteralTypeAnnotation':
|
|
387
|
+
return wrapOptional('NSNumber *', isRequired);
|
|
384
388
|
case 'FloatTypeAnnotation':
|
|
385
389
|
return wrapOptional('NSNumber *', isRequired);
|
|
386
390
|
case 'DoubleTypeAnnotation':
|
|
@@ -449,6 +453,8 @@ function getReturnJSType(methodName, nullableTypeAnnotation) {
|
|
|
449
453
|
return 'StringKind';
|
|
450
454
|
case 'NumberTypeAnnotation':
|
|
451
455
|
return 'NumberKind';
|
|
456
|
+
case 'NumberLiteralTypeAnnotation':
|
|
457
|
+
return 'NumberKind';
|
|
452
458
|
case 'FloatTypeAnnotation':
|
|
453
459
|
return 'NumberKind';
|
|
454
460
|
case 'DoubleTypeAnnotation':
|
|
@@ -263,6 +263,8 @@ function getParamObjCType(
|
|
|
263
263
|
return notStruct(wrapOptional('NSString *', !nullable));
|
|
264
264
|
case 'NumberTypeAnnotation':
|
|
265
265
|
return notStruct(isRequired ? 'double' : 'NSNumber *');
|
|
266
|
+
case 'NumberLiteralTypeAnnotation':
|
|
267
|
+
return notStruct(isRequired ? 'double' : 'NSNumber *');
|
|
266
268
|
case 'FloatTypeAnnotation':
|
|
267
269
|
return notStruct(isRequired ? 'float' : 'NSNumber *');
|
|
268
270
|
case 'DoubleTypeAnnotation':
|
|
@@ -344,6 +346,8 @@ function getReturnObjCType(
|
|
|
344
346
|
return wrapOptional('NSString *', isRequired);
|
|
345
347
|
case 'NumberTypeAnnotation':
|
|
346
348
|
return wrapOptional('NSNumber *', isRequired);
|
|
349
|
+
case 'NumberLiteralTypeAnnotation':
|
|
350
|
+
return wrapOptional('NSNumber *', isRequired);
|
|
347
351
|
case 'FloatTypeAnnotation':
|
|
348
352
|
return wrapOptional('NSNumber *', isRequired);
|
|
349
353
|
case 'DoubleTypeAnnotation':
|
|
@@ -414,6 +418,8 @@ function getReturnJSType(
|
|
|
414
418
|
return 'StringKind';
|
|
415
419
|
case 'NumberTypeAnnotation':
|
|
416
420
|
return 'NumberKind';
|
|
421
|
+
case 'NumberLiteralTypeAnnotation':
|
|
422
|
+
return 'NumberKind';
|
|
417
423
|
case 'FloatTypeAnnotation':
|
|
418
424
|
return 'NumberKind';
|
|
419
425
|
case 'DoubleTypeAnnotation':
|
|
@@ -123,6 +123,7 @@ import * as TurboModuleRegistry from '../TurboModuleRegistry';
|
|
|
123
123
|
export interface Spec extends TurboModule {
|
|
124
124
|
+passBool?: (arg: boolean) => void;
|
|
125
125
|
+passNumber: (arg: number) => void;
|
|
126
|
+
+passNumberLiteral: (arg: 4) => void;
|
|
126
127
|
+passString: (arg: string) => void;
|
|
127
128
|
+passStringish: (arg: Stringish) => void;
|
|
128
129
|
+passStringLiteral: (arg: 'A String Literal') => void;
|
|
@@ -126,6 +126,7 @@ import * as TurboModuleRegistry from '../TurboModuleRegistry';
|
|
|
126
126
|
export interface Spec extends TurboModule {
|
|
127
127
|
+passBool?: (arg: boolean) => void;
|
|
128
128
|
+passNumber: (arg: number) => void;
|
|
129
|
+
+passNumberLiteral: (arg: 4) => void;
|
|
129
130
|
+passString: (arg: string) => void;
|
|
130
131
|
+passStringish: (arg: Stringish) => void;
|
|
131
132
|
+passStringLiteral: (arg: 'A String Literal') => void;
|
|
@@ -101,6 +101,7 @@ const _require3 = require('../../parsers-primitives'),
|
|
|
101
101
|
emitCommonTypes = _require3.emitCommonTypes,
|
|
102
102
|
emitDictionary = _require3.emitDictionary,
|
|
103
103
|
emitFunction = _require3.emitFunction,
|
|
104
|
+
emitNumberLiteral = _require3.emitNumberLiteral,
|
|
104
105
|
emitPromise = _require3.emitPromise,
|
|
105
106
|
emitRootTag = _require3.emitRootTag,
|
|
106
107
|
emitUnion = _require3.emitUnion,
|
|
@@ -300,6 +301,9 @@ function translateTypeAnnotation(
|
|
|
300
301
|
case 'UnionTypeAnnotation': {
|
|
301
302
|
return emitUnion(nullable, hasteModuleName, typeAnnotation, parser);
|
|
302
303
|
}
|
|
304
|
+
case 'NumberLiteralTypeAnnotation': {
|
|
305
|
+
return emitNumberLiteral(nullable, typeAnnotation.value);
|
|
306
|
+
}
|
|
303
307
|
case 'StringLiteralTypeAnnotation': {
|
|
304
308
|
return wrapNullable(nullable, {
|
|
305
309
|
type: 'StringLiteralTypeAnnotation',
|
|
@@ -38,6 +38,7 @@ const {
|
|
|
38
38
|
emitCommonTypes,
|
|
39
39
|
emitDictionary,
|
|
40
40
|
emitFunction,
|
|
41
|
+
emitNumberLiteral,
|
|
41
42
|
emitPromise,
|
|
42
43
|
emitRootTag,
|
|
43
44
|
emitUnion,
|
|
@@ -243,6 +244,9 @@ function translateTypeAnnotation(
|
|
|
243
244
|
case 'UnionTypeAnnotation': {
|
|
244
245
|
return emitUnion(nullable, hasteModuleName, typeAnnotation, parser);
|
|
245
246
|
}
|
|
247
|
+
case 'NumberLiteralTypeAnnotation': {
|
|
248
|
+
return emitNumberLiteral(nullable, typeAnnotation.value);
|
|
249
|
+
}
|
|
246
250
|
case 'StringLiteralTypeAnnotation': {
|
|
247
251
|
return wrapNullable(nullable, {
|
|
248
252
|
type: 'StringLiteralTypeAnnotation',
|
|
@@ -15,7 +15,7 @@ import type {
|
|
|
15
15
|
NamedShape,
|
|
16
16
|
NativeModuleAliasMap,
|
|
17
17
|
NativeModuleEnumMap,
|
|
18
|
-
|
|
18
|
+
NativeModuleEnumMember,
|
|
19
19
|
NativeModuleEnumMemberType,
|
|
20
20
|
NativeModuleParamTypeAnnotation,
|
|
21
21
|
Nullable,
|
|
@@ -227,7 +227,9 @@ class FlowParser implements Parser {
|
|
|
227
227
|
});
|
|
228
228
|
}
|
|
229
229
|
|
|
230
|
-
parseEnumMembers(
|
|
230
|
+
parseEnumMembers(
|
|
231
|
+
typeAnnotation: $FlowFixMe,
|
|
232
|
+
): $ReadOnlyArray<NativeModuleEnumMember> {
|
|
231
233
|
return typeAnnotation.members.map(member => ({
|
|
232
234
|
name: member.id.name,
|
|
233
235
|
value: member.init?.value ?? member.id.name,
|
|
@@ -15,7 +15,7 @@ import type {
|
|
|
15
15
|
NamedShape,
|
|
16
16
|
NativeModuleAliasMap,
|
|
17
17
|
NativeModuleEnumMap,
|
|
18
|
-
|
|
18
|
+
NativeModuleEnumMember,
|
|
19
19
|
NativeModuleEnumMemberType,
|
|
20
20
|
NativeModuleParamTypeAnnotation,
|
|
21
21
|
Nullable,
|
|
@@ -240,7 +240,9 @@ export interface Parser {
|
|
|
240
240
|
/**
|
|
241
241
|
* Calculates enum's members
|
|
242
242
|
*/
|
|
243
|
-
parseEnumMembers(
|
|
243
|
+
parseEnumMembers(
|
|
244
|
+
typeAnnotation: $FlowFixMe,
|
|
245
|
+
): $ReadOnlyArray<NativeModuleEnumMember>;
|
|
244
246
|
|
|
245
247
|
/**
|
|
246
248
|
* Given a node, it returns true if it is a module interface
|
|
@@ -15,7 +15,7 @@ import type {
|
|
|
15
15
|
NamedShape,
|
|
16
16
|
NativeModuleAliasMap,
|
|
17
17
|
NativeModuleEnumMap,
|
|
18
|
-
|
|
18
|
+
NativeModuleEnumMember,
|
|
19
19
|
NativeModuleEnumMemberType,
|
|
20
20
|
NativeModuleParamTypeAnnotation,
|
|
21
21
|
Nullable,
|
|
@@ -168,7 +168,9 @@ export class MockedParser implements Parser {
|
|
|
168
168
|
return;
|
|
169
169
|
}
|
|
170
170
|
|
|
171
|
-
parseEnumMembers(
|
|
171
|
+
parseEnumMembers(
|
|
172
|
+
typeAnnotation: $FlowFixMe,
|
|
173
|
+
): $ReadOnlyArray<NativeModuleEnumMember> {
|
|
172
174
|
return typeAnnotation.type === 'StringTypeAnnotation'
|
|
173
175
|
? [
|
|
174
176
|
{
|
|
@@ -188,6 +188,12 @@ function emitMixed(nullable) {
|
|
|
188
188
|
type: 'MixedTypeAnnotation',
|
|
189
189
|
});
|
|
190
190
|
}
|
|
191
|
+
function emitNumberLiteral(nullable, value) {
|
|
192
|
+
return wrapNullable(nullable, {
|
|
193
|
+
type: 'NumberLiteralTypeAnnotation',
|
|
194
|
+
value,
|
|
195
|
+
});
|
|
196
|
+
}
|
|
191
197
|
function emitString(nullable) {
|
|
192
198
|
return wrapNullable(nullable, {
|
|
193
199
|
type: 'StringTypeAnnotation',
|
|
@@ -695,6 +701,7 @@ module.exports = {
|
|
|
695
701
|
emitInt32Prop,
|
|
696
702
|
emitMixedProp,
|
|
697
703
|
emitNumber,
|
|
704
|
+
emitNumberLiteral,
|
|
698
705
|
emitGenericObject,
|
|
699
706
|
emitDictionary,
|
|
700
707
|
emitObject,
|
|
@@ -31,6 +31,7 @@ import type {
|
|
|
31
31
|
NativeModuleTypeAnnotation,
|
|
32
32
|
NativeModuleUnionTypeAnnotation,
|
|
33
33
|
Nullable,
|
|
34
|
+
NumberLiteralTypeAnnotation,
|
|
34
35
|
ObjectTypeAnnotation,
|
|
35
36
|
ReservedTypeAnnotation,
|
|
36
37
|
StringLiteralTypeAnnotation,
|
|
@@ -170,6 +171,16 @@ function emitMixed(
|
|
|
170
171
|
});
|
|
171
172
|
}
|
|
172
173
|
|
|
174
|
+
function emitNumberLiteral(
|
|
175
|
+
nullable: boolean,
|
|
176
|
+
value: number,
|
|
177
|
+
): Nullable<NumberLiteralTypeAnnotation> {
|
|
178
|
+
return wrapNullable(nullable, {
|
|
179
|
+
type: 'NumberLiteralTypeAnnotation',
|
|
180
|
+
value,
|
|
181
|
+
});
|
|
182
|
+
}
|
|
183
|
+
|
|
173
184
|
function emitString(nullable: boolean): Nullable<StringTypeAnnotation> {
|
|
174
185
|
return wrapNullable(nullable, {
|
|
175
186
|
type: 'StringTypeAnnotation',
|
|
@@ -762,6 +773,7 @@ module.exports = {
|
|
|
762
773
|
emitInt32Prop,
|
|
763
774
|
emitMixedProp,
|
|
764
775
|
emitNumber,
|
|
776
|
+
emitNumberLiteral,
|
|
765
777
|
emitGenericObject,
|
|
766
778
|
emitDictionary,
|
|
767
779
|
emitObject,
|
|
@@ -110,6 +110,7 @@ import * as TurboModuleRegistry from '../TurboModuleRegistry';
|
|
|
110
110
|
export interface Spec extends TurboModule {
|
|
111
111
|
readonly passBool?: (arg: boolean) => void;
|
|
112
112
|
readonly passNumber: (arg: number) => void;
|
|
113
|
+
readonly passNumberLiteral: (arg: 4) => void;
|
|
113
114
|
readonly passString: (arg: string) => void;
|
|
114
115
|
readonly passStringish: (arg: Stringish) => void;
|
|
115
116
|
readonly passStringLiteral: (arg: 'A String Literal') => void;
|
|
@@ -113,6 +113,7 @@ import * as TurboModuleRegistry from '../TurboModuleRegistry';
|
|
|
113
113
|
export interface Spec extends TurboModule {
|
|
114
114
|
readonly passBool?: (arg: boolean) => void;
|
|
115
115
|
readonly passNumber: (arg: number) => void;
|
|
116
|
+
readonly passNumberLiteral: (arg: 4) => void;
|
|
116
117
|
readonly passString: (arg: string) => void;
|
|
117
118
|
readonly passStringish: (arg: Stringish) => void;
|
|
118
119
|
readonly passStringLiteral: (arg: 'A String Literal') => void;
|
|
@@ -25,6 +25,7 @@ const _require3 = require('../../parsers-primitives'),
|
|
|
25
25
|
emitCommonTypes = _require3.emitCommonTypes,
|
|
26
26
|
emitDictionary = _require3.emitDictionary,
|
|
27
27
|
emitFunction = _require3.emitFunction,
|
|
28
|
+
emitNumberLiteral = _require3.emitNumberLiteral,
|
|
28
29
|
emitPromise = _require3.emitPromise,
|
|
29
30
|
emitRootTag = _require3.emitRootTag,
|
|
30
31
|
emitStringLiteral = _require3.emitStringLiteral,
|
|
@@ -394,6 +395,9 @@ function translateTypeAnnotation(
|
|
|
394
395
|
case 'StringLiteral': {
|
|
395
396
|
return emitStringLiteral(nullable, literal.value);
|
|
396
397
|
}
|
|
398
|
+
case 'NumericLiteral': {
|
|
399
|
+
return emitNumberLiteral(nullable, literal.value);
|
|
400
|
+
}
|
|
397
401
|
default: {
|
|
398
402
|
throw new UnsupportedTypeAnnotationParserError(
|
|
399
403
|
hasteModuleName,
|
|
@@ -37,6 +37,7 @@ const {
|
|
|
37
37
|
emitCommonTypes,
|
|
38
38
|
emitDictionary,
|
|
39
39
|
emitFunction,
|
|
40
|
+
emitNumberLiteral,
|
|
40
41
|
emitPromise,
|
|
41
42
|
emitRootTag,
|
|
42
43
|
emitStringLiteral,
|
|
@@ -403,6 +404,9 @@ function translateTypeAnnotation(
|
|
|
403
404
|
case 'StringLiteral': {
|
|
404
405
|
return emitStringLiteral(nullable, literal.value);
|
|
405
406
|
}
|
|
407
|
+
case 'NumericLiteral': {
|
|
408
|
+
return emitNumberLiteral(nullable, literal.value);
|
|
409
|
+
}
|
|
406
410
|
default: {
|
|
407
411
|
throw new UnsupportedTypeAnnotationParserError(
|
|
408
412
|
hasteModuleName,
|
|
@@ -15,7 +15,7 @@ import type {
|
|
|
15
15
|
NamedShape,
|
|
16
16
|
NativeModuleAliasMap,
|
|
17
17
|
NativeModuleEnumMap,
|
|
18
|
-
|
|
18
|
+
NativeModuleEnumMember,
|
|
19
19
|
NativeModuleEnumMemberType,
|
|
20
20
|
NativeModuleParamTypeAnnotation,
|
|
21
21
|
Nullable,
|
|
@@ -223,7 +223,9 @@ class TypeScriptParser implements Parser {
|
|
|
223
223
|
});
|
|
224
224
|
}
|
|
225
225
|
|
|
226
|
-
parseEnumMembers(
|
|
226
|
+
parseEnumMembers(
|
|
227
|
+
typeAnnotation: $FlowFixMe,
|
|
228
|
+
): $ReadOnlyArray<NativeModuleEnumMember> {
|
|
227
229
|
return typeAnnotation.members.map(member => ({
|
|
228
230
|
name: member.id.name,
|
|
229
231
|
value: member.initializer?.value ?? member.id.name,
|