Skip to content

Commit 12ced22

Browse files
Yannick Loriotfacebook-github-bot
authored andcommitted
Improve error messages when enum members are missing (#51502)
Summary: Pull Request resolved: #51502 While working on a case for Editor on mac, it took me a while to figure out what enum was the root cause: {F1978470518} Adding the blaming enum name in the error message would have made my life much easier. ## Changelog: [GENERAL][Added] - Improve error messages when enum members are missing Reviewed By: rshest Differential Revision: D75141414 fbshipit-source-id: 3625d817b218788891252add225f8fffb99e3145
1 parent 5489e18 commit 12ced22

File tree

3 files changed

+32
-32
lines changed

3 files changed

+32
-32
lines changed

packages/react-native-codegen/e2e/deep_imports/__tests__/modules/__snapshots__/GenerateModuleH-test.js.snap

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -231,7 +231,7 @@ struct Bridging<NativeEnumTurboModuleStatusLowerCaseEnum> {
231231
} else if (value == \\"off\\") {
232232
return NativeEnumTurboModuleStatusLowerCaseEnum::Off;
233233
} else {
234-
throw jsi::JSError(rt, \\"No appropriate enum member found for value\\");
234+
throw jsi::JSError(rt, \\"No appropriate enum member found for value in NativeEnumTurboModuleStatusLowerCaseEnum\\");
235235
}
236236
}
237237

@@ -243,7 +243,7 @@ struct Bridging<NativeEnumTurboModuleStatusLowerCaseEnum> {
243243
} else if (value == NativeEnumTurboModuleStatusLowerCaseEnum::Off) {
244244
return bridging::toJs(rt, \\"off\\");
245245
} else {
246-
throw jsi::JSError(rt, \\"No appropriate enum member found for enum value\\");
246+
throw jsi::JSError(rt, \\"No appropriate enum member found for enum value in NativeEnumTurboModuleStatusLowerCaseEnum\\");
247247
}
248248
}
249249
};
@@ -263,7 +263,7 @@ struct Bridging<NativeEnumTurboModuleStatusNumEnum> {
263263
} else if (value == 0) {
264264
return NativeEnumTurboModuleStatusNumEnum::Off;
265265
} else {
266-
throw jsi::JSError(rt, \\"No appropriate enum member found for value\\");
266+
throw jsi::JSError(rt, \\"No appropriate enum member found for value in NativeEnumTurboModuleStatusNumEnum\\");
267267
}
268268
}
269269

@@ -275,7 +275,7 @@ struct Bridging<NativeEnumTurboModuleStatusNumEnum> {
275275
} else if (value == NativeEnumTurboModuleStatusNumEnum::Off) {
276276
return bridging::toJs(rt, 0);
277277
} else {
278-
throw jsi::JSError(rt, \\"No appropriate enum member found for enum value\\");
278+
throw jsi::JSError(rt, \\"No appropriate enum member found for enum value in NativeEnumTurboModuleStatusNumEnum\\");
279279
}
280280
}
281281
};
@@ -295,7 +295,7 @@ struct Bridging<NativeEnumTurboModuleStatusRegularEnum> {
295295
} else if (value == \\"Off\\") {
296296
return NativeEnumTurboModuleStatusRegularEnum::Off;
297297
} else {
298-
throw jsi::JSError(rt, \\"No appropriate enum member found for value\\");
298+
throw jsi::JSError(rt, \\"No appropriate enum member found for value in NativeEnumTurboModuleStatusRegularEnum\\");
299299
}
300300
}
301301

@@ -307,7 +307,7 @@ struct Bridging<NativeEnumTurboModuleStatusRegularEnum> {
307307
} else if (value == NativeEnumTurboModuleStatusRegularEnum::Off) {
308308
return bridging::toJs(rt, \\"Off\\");
309309
} else {
310-
throw jsi::JSError(rt, \\"No appropriate enum member found for enum value\\");
310+
throw jsi::JSError(rt, \\"No appropriate enum member found for enum value in NativeEnumTurboModuleStatusRegularEnum\\");
311311
}
312312
}
313313
};
@@ -327,7 +327,7 @@ struct Bridging<NativeEnumTurboModuleStatusStrEnum> {
327327
} else if (value == \\"off\\") {
328328
return NativeEnumTurboModuleStatusStrEnum::Off;
329329
} else {
330-
throw jsi::JSError(rt, \\"No appropriate enum member found for value\\");
330+
throw jsi::JSError(rt, \\"No appropriate enum member found for value in NativeEnumTurboModuleStatusStrEnum\\");
331331
}
332332
}
333333

@@ -339,7 +339,7 @@ struct Bridging<NativeEnumTurboModuleStatusStrEnum> {
339339
} else if (value == NativeEnumTurboModuleStatusStrEnum::Off) {
340340
return bridging::toJs(rt, \\"off\\");
341341
} else {
342-
throw jsi::JSError(rt, \\"No appropriate enum member found for enum value\\");
342+
throw jsi::JSError(rt, \\"No appropriate enum member found for enum value in NativeEnumTurboModuleStatusStrEnum\\");
343343
}
344344
}
345345
};
@@ -2361,7 +2361,7 @@ struct Bridging<NativeEnumTurboModuleStatusLowerCaseEnum> {
23612361
} else if (value == \\"off\\") {
23622362
return NativeEnumTurboModuleStatusLowerCaseEnum::Off;
23632363
} else {
2364-
throw jsi::JSError(rt, \\"No appropriate enum member found for value\\");
2364+
throw jsi::JSError(rt, \\"No appropriate enum member found for value in NativeEnumTurboModuleStatusLowerCaseEnum\\");
23652365
}
23662366
}
23672367

@@ -2373,7 +2373,7 @@ struct Bridging<NativeEnumTurboModuleStatusLowerCaseEnum> {
23732373
} else if (value == NativeEnumTurboModuleStatusLowerCaseEnum::Off) {
23742374
return bridging::toJs(rt, \\"off\\");
23752375
} else {
2376-
throw jsi::JSError(rt, \\"No appropriate enum member found for enum value\\");
2376+
throw jsi::JSError(rt, \\"No appropriate enum member found for enum value in NativeEnumTurboModuleStatusLowerCaseEnum\\");
23772377
}
23782378
}
23792379
};
@@ -2393,7 +2393,7 @@ struct Bridging<NativeEnumTurboModuleStatusNumEnum> {
23932393
} else if (value == 0) {
23942394
return NativeEnumTurboModuleStatusNumEnum::Off;
23952395
} else {
2396-
throw jsi::JSError(rt, \\"No appropriate enum member found for value\\");
2396+
throw jsi::JSError(rt, \\"No appropriate enum member found for value in NativeEnumTurboModuleStatusNumEnum\\");
23972397
}
23982398
}
23992399

@@ -2405,7 +2405,7 @@ struct Bridging<NativeEnumTurboModuleStatusNumEnum> {
24052405
} else if (value == NativeEnumTurboModuleStatusNumEnum::Off) {
24062406
return bridging::toJs(rt, 0);
24072407
} else {
2408-
throw jsi::JSError(rt, \\"No appropriate enum member found for enum value\\");
2408+
throw jsi::JSError(rt, \\"No appropriate enum member found for enum value in NativeEnumTurboModuleStatusNumEnum\\");
24092409
}
24102410
}
24112411
};
@@ -2425,7 +2425,7 @@ struct Bridging<NativeEnumTurboModuleStatusRegularEnum> {
24252425
} else if (value == \\"Off\\") {
24262426
return NativeEnumTurboModuleStatusRegularEnum::Off;
24272427
} else {
2428-
throw jsi::JSError(rt, \\"No appropriate enum member found for value\\");
2428+
throw jsi::JSError(rt, \\"No appropriate enum member found for value in NativeEnumTurboModuleStatusRegularEnum\\");
24292429
}
24302430
}
24312431

@@ -2437,7 +2437,7 @@ struct Bridging<NativeEnumTurboModuleStatusRegularEnum> {
24372437
} else if (value == NativeEnumTurboModuleStatusRegularEnum::Off) {
24382438
return bridging::toJs(rt, \\"Off\\");
24392439
} else {
2440-
throw jsi::JSError(rt, \\"No appropriate enum member found for enum value\\");
2440+
throw jsi::JSError(rt, \\"No appropriate enum member found for enum value in NativeEnumTurboModuleStatusRegularEnum\\");
24412441
}
24422442
}
24432443
};
@@ -2457,7 +2457,7 @@ struct Bridging<NativeEnumTurboModuleStatusStrEnum> {
24572457
} else if (value == \\"off\\") {
24582458
return NativeEnumTurboModuleStatusStrEnum::Off;
24592459
} else {
2460-
throw jsi::JSError(rt, \\"No appropriate enum member found for value\\");
2460+
throw jsi::JSError(rt, \\"No appropriate enum member found for value in NativeEnumTurboModuleStatusStrEnum\\");
24612461
}
24622462
}
24632463

@@ -2469,7 +2469,7 @@ struct Bridging<NativeEnumTurboModuleStatusStrEnum> {
24692469
} else if (value == NativeEnumTurboModuleStatusStrEnum::Off) {
24702470
return bridging::toJs(rt, \\"off\\");
24712471
} else {
2472-
throw jsi::JSError(rt, \\"No appropriate enum member found for enum value\\");
2472+
throw jsi::JSError(rt, \\"No appropriate enum member found for enum value in NativeEnumTurboModuleStatusStrEnum\\");
24732473
}
24742474
}
24752475
};

packages/react-native-codegen/src/generators/modules/GenerateModuleH.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -434,7 +434,7 @@ function generateEnum(
434434
)
435435
.join(' else ') +
436436
` else {
437-
throw jsi::JSError(rt, "No appropriate enum member found for value");
437+
throw jsi::JSError(rt, "No appropriate enum member found for value in ${enumName}");
438438
}`;
439439

440440
const toCases =
@@ -446,7 +446,7 @@ function generateEnum(
446446
)
447447
.join(' else ') +
448448
` else {
449-
throw jsi::JSError(rt, "No appropriate enum member found for enum value");
449+
throw jsi::JSError(rt, "No appropriate enum member found for enum value in ${enumName}");
450450
}`;
451451

452452
return EnumTemplate({

packages/react-native-codegen/src/generators/modules/__tests__/__snapshots__/GenerateModuleH-test.js.snap

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -233,7 +233,7 @@ struct Bridging<NativeSampleTurboModuleEnumInt> {
233233
} else if (value == 42) {
234234
return NativeSampleTurboModuleEnumInt::IB;
235235
} else {
236-
throw jsi::JSError(rt, \\"No appropriate enum member found for value\\");
236+
throw jsi::JSError(rt, \\"No appropriate enum member found for value in NativeSampleTurboModuleEnumInt\\");
237237
}
238238
}
239239

@@ -243,7 +243,7 @@ struct Bridging<NativeSampleTurboModuleEnumInt> {
243243
} else if (value == NativeSampleTurboModuleEnumInt::IB) {
244244
return bridging::toJs(rt, 42);
245245
} else {
246-
throw jsi::JSError(rt, \\"No appropriate enum member found for enum value\\");
246+
throw jsi::JSError(rt, \\"No appropriate enum member found for enum value in NativeSampleTurboModuleEnumInt\\");
247247
}
248248
}
249249
};
@@ -261,7 +261,7 @@ struct Bridging<NativeSampleTurboModuleEnumFloat> {
261261
} else if (value == 4.56) {
262262
return NativeSampleTurboModuleEnumFloat::FB;
263263
} else {
264-
throw jsi::JSError(rt, \\"No appropriate enum member found for value\\");
264+
throw jsi::JSError(rt, \\"No appropriate enum member found for value in NativeSampleTurboModuleEnumFloat\\");
265265
}
266266
}
267267

@@ -271,7 +271,7 @@ struct Bridging<NativeSampleTurboModuleEnumFloat> {
271271
} else if (value == NativeSampleTurboModuleEnumFloat::FB) {
272272
return bridging::toJs(rt, 4.56);
273273
} else {
274-
throw jsi::JSError(rt, \\"No appropriate enum member found for enum value\\");
274+
throw jsi::JSError(rt, \\"No appropriate enum member found for enum value in NativeSampleTurboModuleEnumFloat\\");
275275
}
276276
}
277277
};
@@ -289,7 +289,7 @@ struct Bridging<NativeSampleTurboModuleEnumNone> {
289289
} else if (value == \\"NB\\") {
290290
return NativeSampleTurboModuleEnumNone::NB;
291291
} else {
292-
throw jsi::JSError(rt, \\"No appropriate enum member found for value\\");
292+
throw jsi::JSError(rt, \\"No appropriate enum member found for value in NativeSampleTurboModuleEnumNone\\");
293293
}
294294
}
295295

@@ -299,7 +299,7 @@ struct Bridging<NativeSampleTurboModuleEnumNone> {
299299
} else if (value == NativeSampleTurboModuleEnumNone::NB) {
300300
return bridging::toJs(rt, \\"NB\\");
301301
} else {
302-
throw jsi::JSError(rt, \\"No appropriate enum member found for enum value\\");
302+
throw jsi::JSError(rt, \\"No appropriate enum member found for enum value in NativeSampleTurboModuleEnumNone\\");
303303
}
304304
}
305305
};
@@ -317,7 +317,7 @@ struct Bridging<NativeSampleTurboModuleEnumStr> {
317317
} else if (value == \\"s---b\\") {
318318
return NativeSampleTurboModuleEnumStr::SB;
319319
} else {
320-
throw jsi::JSError(rt, \\"No appropriate enum member found for value\\");
320+
throw jsi::JSError(rt, \\"No appropriate enum member found for value in NativeSampleTurboModuleEnumStr\\");
321321
}
322322
}
323323

@@ -327,7 +327,7 @@ struct Bridging<NativeSampleTurboModuleEnumStr> {
327327
} else if (value == NativeSampleTurboModuleEnumStr::SB) {
328328
return bridging::toJs(rt, \\"s---b\\");
329329
} else {
330-
throw jsi::JSError(rt, \\"No appropriate enum member found for enum value\\");
330+
throw jsi::JSError(rt, \\"No appropriate enum member found for enum value in NativeSampleTurboModuleEnumStr\\");
331331
}
332332
}
333333
};
@@ -2024,7 +2024,7 @@ struct Bridging<NativeSampleTurboModuleNumEnum> {
20242024
} else if (value == 2) {
20252025
return NativeSampleTurboModuleNumEnum::TWO;
20262026
} else {
2027-
throw jsi::JSError(rt, \\"No appropriate enum member found for value\\");
2027+
throw jsi::JSError(rt, \\"No appropriate enum member found for value in NativeSampleTurboModuleNumEnum\\");
20282028
}
20292029
}
20302030

@@ -2034,7 +2034,7 @@ struct Bridging<NativeSampleTurboModuleNumEnum> {
20342034
} else if (value == NativeSampleTurboModuleNumEnum::TWO) {
20352035
return bridging::toJs(rt, 2);
20362036
} else {
2037-
throw jsi::JSError(rt, \\"No appropriate enum member found for enum value\\");
2037+
throw jsi::JSError(rt, \\"No appropriate enum member found for enum value in NativeSampleTurboModuleNumEnum\\");
20382038
}
20392039
}
20402040
};
@@ -2054,7 +2054,7 @@ struct Bridging<NativeSampleTurboModuleFloatEnum> {
20542054
} else if (value == 0.2) {
20552055
return NativeSampleTurboModuleFloatEnum::POINT_TWO;
20562056
} else {
2057-
throw jsi::JSError(rt, \\"No appropriate enum member found for value\\");
2057+
throw jsi::JSError(rt, \\"No appropriate enum member found for value in NativeSampleTurboModuleFloatEnum\\");
20582058
}
20592059
}
20602060

@@ -2066,7 +2066,7 @@ struct Bridging<NativeSampleTurboModuleFloatEnum> {
20662066
} else if (value == NativeSampleTurboModuleFloatEnum::POINT_TWO) {
20672067
return bridging::toJs(rt, 0.2);
20682068
} else {
2069-
throw jsi::JSError(rt, \\"No appropriate enum member found for enum value\\");
2069+
throw jsi::JSError(rt, \\"No appropriate enum member found for enum value in NativeSampleTurboModuleFloatEnum\\");
20702070
}
20712071
}
20722072
};
@@ -2084,7 +2084,7 @@ struct Bridging<NativeSampleTurboModuleStringEnum> {
20842084
} else if (value == \\"goodbye\\") {
20852085
return NativeSampleTurboModuleStringEnum::GoodBye;
20862086
} else {
2087-
throw jsi::JSError(rt, \\"No appropriate enum member found for value\\");
2087+
throw jsi::JSError(rt, \\"No appropriate enum member found for value in NativeSampleTurboModuleStringEnum\\");
20882088
}
20892089
}
20902090

@@ -2094,7 +2094,7 @@ struct Bridging<NativeSampleTurboModuleStringEnum> {
20942094
} else if (value == NativeSampleTurboModuleStringEnum::GoodBye) {
20952095
return bridging::toJs(rt, \\"goodbye\\");
20962096
} else {
2097-
throw jsi::JSError(rt, \\"No appropriate enum member found for enum value\\");
2097+
throw jsi::JSError(rt, \\"No appropriate enum member found for enum value in NativeSampleTurboModuleStringEnum\\");
20982098
}
20992099
}
21002100
};

0 commit comments

Comments
 (0)