From 728d773826c38f033d9f45dc2699ca9c6c9f220f Mon Sep 17 00:00:00 2001 From: zhongwuzw Date: Fri, 7 Jun 2024 07:53:59 -0700 Subject: [PATCH] Fixes enum codegen value cases (#44654) Summary: Fixes https://github.com/facebook/react-native/issues/44632 ## Changelog: [GENERAL] [FIXED] - [codegen] Fixes enum codegen value cases Pull Request resolved: https://github.com/facebook/react-native/pull/44654 Test Plan: https://github.com/facebook/react-native/issues/44632 Reviewed By: cipolleschi, dmytrorykun Differential Revision: D58135645 Pulled By: cortinico fbshipit-source-id: 5c0634ef1d1d7375d2ecfcf7f916d67fd39b7300 --- .flowconfig | 3 + .prettierignore | 2 + .../modules/NativeEnumTurboModule.js | 9 ++ .../GenerateModuleCpp-test.js.snap | 24 +++- .../GenerateModuleH-test.js.snap | 128 +++++++++++++++--- .../GenerateModuleObjCpp-test.js.snap | 31 ++++- .../src/generators/modules/GenerateModuleH.js | 2 +- 7 files changed, 174 insertions(+), 25 deletions(-) diff --git a/.flowconfig b/.flowconfig index b0420c2bcce32c..250ad8dc83a1c0 100644 --- a/.flowconfig +++ b/.flowconfig @@ -3,6 +3,9 @@ /packages/react-native/template/.* /packages/react-native/sdks/.* +; Ignore the codegen e2e tests +/packages/react-native-codegen/e2e/__test_fixtures__/modules/NativeEnumTurboModule.js + ; Ignore the Dangerfile /packages/react-native-bots/dangerfile.js diff --git a/.prettierignore b/.prettierignore index 93b6aaeaf77e30..4e8b78e14f5b47 100644 --- a/.prettierignore +++ b/.prettierignore @@ -7,3 +7,5 @@ packages/*/dist vendor + +packages/react-native-codegen/e2e/__test_fixtures__/modules/NativeEnumTurboModule.js diff --git a/packages/react-native-codegen/e2e/__test_fixtures__/modules/NativeEnumTurboModule.js b/packages/react-native-codegen/e2e/__test_fixtures__/modules/NativeEnumTurboModule.js index 9a5c29696bb250..bfcf3e270b48eb 100644 --- a/packages/react-native-codegen/e2e/__test_fixtures__/modules/NativeEnumTurboModule.js +++ b/packages/react-native-codegen/e2e/__test_fixtures__/modules/NativeEnumTurboModule.js @@ -34,21 +34,30 @@ export enum StatusNumEnum { Off = 0, } +export enum StatusLowerCaseEnum { + Active = 'active', + Paused = 'paused', + Off = 'off', +} + export type StateTypeWithEnums = {| state: string, regular: StatusRegularEnum, str: StatusStrEnum, num: StatusNumEnum, + lowerCase: StatusLowerCaseEnum, |}; export interface Spec extends TurboModule { +getStatusRegular: (statusProp: StateType) => StatusRegularEnum; +getStatusStr: (statusProp: StateType) => StatusStrEnum; +getStatusNum: (statusProp: StateType) => StatusNumEnum; + +getStatusLowerCase: (statusProp: StateType) => StatusLowerCaseEnum; +getStateType: ( a: StatusRegularEnum, b: StatusStrEnum, c: StatusNumEnum, + d: StatusLowerCaseEnum, ) => StateType; +getStateTypeWithEnums: ( paramOfTypeWithEnums: StateTypeWithEnums, diff --git a/packages/react-native-codegen/e2e/__tests__/modules/__snapshots__/GenerateModuleCpp-test.js.snap b/packages/react-native-codegen/e2e/__tests__/modules/__snapshots__/GenerateModuleCpp-test.js.snap index 606b8792e26d70..0b9629545621fd 100644 --- a/packages/react-native-codegen/e2e/__tests__/modules/__snapshots__/GenerateModuleCpp-test.js.snap +++ b/packages/react-native-codegen/e2e/__tests__/modules/__snapshots__/GenerateModuleCpp-test.js.snap @@ -96,12 +96,19 @@ static jsi::Value __hostFunction_NativeEnumTurboModuleCxxSpecJSI_getStatusNum(js count <= 0 ? throw jsi::JSError(rt, \\"Expected argument in position 0 to be passed\\") : args[0].asObject(rt) ); } +static jsi::Value __hostFunction_NativeEnumTurboModuleCxxSpecJSI_getStatusLowerCase(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) { + return static_cast(&turboModule)->getStatusLowerCase( + rt, + count <= 0 ? throw jsi::JSError(rt, \\"Expected argument in position 0 to be passed\\") : args[0].asObject(rt) + ); +} static jsi::Value __hostFunction_NativeEnumTurboModuleCxxSpecJSI_getStateType(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) { return static_cast(&turboModule)->getStateType( rt, count <= 0 ? throw jsi::JSError(rt, \\"Expected argument in position 0 to be passed\\") : args[0].asString(rt), count <= 1 ? throw jsi::JSError(rt, \\"Expected argument in position 1 to be passed\\") : args[1].asString(rt), - count <= 2 ? throw jsi::JSError(rt, \\"Expected argument in position 2 to be passed\\") : args[2].asNumber() + count <= 2 ? throw jsi::JSError(rt, \\"Expected argument in position 2 to be passed\\") : args[2].asNumber(), + count <= 3 ? throw jsi::JSError(rt, \\"Expected argument in position 3 to be passed\\") : args[3].asString(rt) ); } static jsi::Value __hostFunction_NativeEnumTurboModuleCxxSpecJSI_getStateTypeWithEnums(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) { @@ -116,7 +123,8 @@ NativeEnumTurboModuleCxxSpecJSI::NativeEnumTurboModuleCxxSpecJSI(std::shared_ptr methodMap_[\\"getStatusRegular\\"] = MethodMetadata {1, __hostFunction_NativeEnumTurboModuleCxxSpecJSI_getStatusRegular}; methodMap_[\\"getStatusStr\\"] = MethodMetadata {1, __hostFunction_NativeEnumTurboModuleCxxSpecJSI_getStatusStr}; methodMap_[\\"getStatusNum\\"] = MethodMetadata {1, __hostFunction_NativeEnumTurboModuleCxxSpecJSI_getStatusNum}; - methodMap_[\\"getStateType\\"] = MethodMetadata {3, __hostFunction_NativeEnumTurboModuleCxxSpecJSI_getStateType}; + methodMap_[\\"getStatusLowerCase\\"] = MethodMetadata {1, __hostFunction_NativeEnumTurboModuleCxxSpecJSI_getStatusLowerCase}; + methodMap_[\\"getStateType\\"] = MethodMetadata {4, __hostFunction_NativeEnumTurboModuleCxxSpecJSI_getStateType}; methodMap_[\\"getStateTypeWithEnums\\"] = MethodMetadata {1, __hostFunction_NativeEnumTurboModuleCxxSpecJSI_getStateTypeWithEnums}; } static jsi::Value __hostFunction_NativeNullableTurboModuleCxxSpecJSI_getBool(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) { @@ -909,12 +917,19 @@ static jsi::Value __hostFunction_NativeEnumTurboModuleCxxSpecJSI_getStatusNum(js count <= 0 ? throw jsi::JSError(rt, \\"Expected argument in position 0 to be passed\\") : args[0].asObject(rt) ); } +static jsi::Value __hostFunction_NativeEnumTurboModuleCxxSpecJSI_getStatusLowerCase(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) { + return static_cast(&turboModule)->getStatusLowerCase( + rt, + count <= 0 ? throw jsi::JSError(rt, \\"Expected argument in position 0 to be passed\\") : args[0].asObject(rt) + ); +} static jsi::Value __hostFunction_NativeEnumTurboModuleCxxSpecJSI_getStateType(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) { return static_cast(&turboModule)->getStateType( rt, count <= 0 ? throw jsi::JSError(rt, \\"Expected argument in position 0 to be passed\\") : args[0].asString(rt), count <= 1 ? throw jsi::JSError(rt, \\"Expected argument in position 1 to be passed\\") : args[1].asString(rt), - count <= 2 ? throw jsi::JSError(rt, \\"Expected argument in position 2 to be passed\\") : args[2].asNumber() + count <= 2 ? throw jsi::JSError(rt, \\"Expected argument in position 2 to be passed\\") : args[2].asNumber(), + count <= 3 ? throw jsi::JSError(rt, \\"Expected argument in position 3 to be passed\\") : args[3].asString(rt) ); } static jsi::Value __hostFunction_NativeEnumTurboModuleCxxSpecJSI_getStateTypeWithEnums(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) { @@ -929,7 +944,8 @@ NativeEnumTurboModuleCxxSpecJSI::NativeEnumTurboModuleCxxSpecJSI(std::shared_ptr methodMap_[\\"getStatusRegular\\"] = MethodMetadata {1, __hostFunction_NativeEnumTurboModuleCxxSpecJSI_getStatusRegular}; methodMap_[\\"getStatusStr\\"] = MethodMetadata {1, __hostFunction_NativeEnumTurboModuleCxxSpecJSI_getStatusStr}; methodMap_[\\"getStatusNum\\"] = MethodMetadata {1, __hostFunction_NativeEnumTurboModuleCxxSpecJSI_getStatusNum}; - methodMap_[\\"getStateType\\"] = MethodMetadata {3, __hostFunction_NativeEnumTurboModuleCxxSpecJSI_getStateType}; + methodMap_[\\"getStatusLowerCase\\"] = MethodMetadata {1, __hostFunction_NativeEnumTurboModuleCxxSpecJSI_getStatusLowerCase}; + methodMap_[\\"getStateType\\"] = MethodMetadata {4, __hostFunction_NativeEnumTurboModuleCxxSpecJSI_getStateType}; methodMap_[\\"getStateTypeWithEnums\\"] = MethodMetadata {1, __hostFunction_NativeEnumTurboModuleCxxSpecJSI_getStateTypeWithEnums}; } static jsi::Value __hostFunction_NativeNullableTurboModuleCxxSpecJSI_getBool(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) { diff --git a/packages/react-native-codegen/e2e/__tests__/modules/__snapshots__/GenerateModuleH-test.js.snap b/packages/react-native-codegen/e2e/__tests__/modules/__snapshots__/GenerateModuleH-test.js.snap index bd656d8fbef718..6ddc5f1e2eb640 100644 --- a/packages/react-native-codegen/e2e/__tests__/modules/__snapshots__/GenerateModuleH-test.js.snap +++ b/packages/react-native-codegen/e2e/__tests__/modules/__snapshots__/GenerateModuleH-test.js.snap @@ -192,6 +192,38 @@ private: }; +#pragma mark - NativeEnumTurboModuleStatusLowerCaseEnum + +enum class NativeEnumTurboModuleStatusLowerCaseEnum { Active, Paused, Off }; + +template <> +struct Bridging { + static NativeEnumTurboModuleStatusLowerCaseEnum fromJs(jsi::Runtime &rt, const jsi::String &rawValue) { + std::string value = rawValue.utf8(rt); + if (value == \\"active\\") { + return NativeEnumTurboModuleStatusLowerCaseEnum::Active; + } else if (value == \\"paused\\") { + return NativeEnumTurboModuleStatusLowerCaseEnum::Paused; + } else if (value == \\"off\\") { + return NativeEnumTurboModuleStatusLowerCaseEnum::Off; + } else { + throw jsi::JSError(rt, \\"No appropriate enum member found for value\\"); + } + } + + static jsi::String toJs(jsi::Runtime &rt, NativeEnumTurboModuleStatusLowerCaseEnum value) { + if (value == NativeEnumTurboModuleStatusLowerCaseEnum::Active) { + return bridging::toJs(rt, \\"active\\"); + } else if (value == NativeEnumTurboModuleStatusLowerCaseEnum::Paused) { + return bridging::toJs(rt, \\"paused\\"); + } else if (value == NativeEnumTurboModuleStatusLowerCaseEnum::Off) { + return bridging::toJs(rt, \\"off\\"); + } else { + throw jsi::JSError(rt, \\"No appropriate enum member found for enum value\\"); + } + } +}; + #pragma mark - NativeEnumTurboModuleStatusNumEnum enum class NativeEnumTurboModuleStatusNumEnum { Active, Paused, Off }; @@ -331,14 +363,15 @@ struct NativeEnumTurboModuleStateTypeBridging { #pragma mark - NativeEnumTurboModuleStateTypeWithEnums -template +template struct NativeEnumTurboModuleStateTypeWithEnums { P0 state; P1 regular; P2 str; P3 num; + P4 lowerCase; bool operator==(const NativeEnumTurboModuleStateTypeWithEnums &other) const { - return state == other.state && regular == other.regular && str == other.str && num == other.num; + return state == other.state && regular == other.regular && str == other.str && num == other.num && lowerCase == other.lowerCase; } }; @@ -354,7 +387,8 @@ struct NativeEnumTurboModuleStateTypeWithEnumsBridging { bridging::fromJs(rt, value.getProperty(rt, \\"state\\"), jsInvoker), bridging::fromJs(rt, value.getProperty(rt, \\"regular\\"), jsInvoker), bridging::fromJs(rt, value.getProperty(rt, \\"str\\"), jsInvoker), - bridging::fromJs(rt, value.getProperty(rt, \\"num\\"), jsInvoker)}; + bridging::fromJs(rt, value.getProperty(rt, \\"num\\"), jsInvoker), + bridging::fromJs(rt, value.getProperty(rt, \\"lowerCase\\"), jsInvoker)}; return result; } @@ -374,6 +408,10 @@ struct NativeEnumTurboModuleStateTypeWithEnumsBridging { static jsi::Value numToJs(jsi::Runtime &rt, decltype(types.num) value) { return bridging::toJs(rt, value); } + + static jsi::String lowerCaseToJs(jsi::Runtime &rt, decltype(types.lowerCase) value) { + return bridging::toJs(rt, value); + } #endif static jsi::Object toJs( @@ -385,6 +423,7 @@ struct NativeEnumTurboModuleStateTypeWithEnumsBridging { result.setProperty(rt, \\"regular\\", bridging::toJs(rt, value.regular, jsInvoker)); result.setProperty(rt, \\"str\\", bridging::toJs(rt, value.str, jsInvoker)); result.setProperty(rt, \\"num\\", bridging::toJs(rt, value.num, jsInvoker)); + result.setProperty(rt, \\"lowerCase\\", bridging::toJs(rt, value.lowerCase, jsInvoker)); return result; } }; @@ -397,7 +436,8 @@ public: virtual jsi::String getStatusRegular(jsi::Runtime &rt, jsi::Object statusProp) = 0; virtual jsi::String getStatusStr(jsi::Runtime &rt, jsi::Object statusProp) = 0; virtual jsi::Value getStatusNum(jsi::Runtime &rt, jsi::Object statusProp) = 0; - virtual jsi::Object getStateType(jsi::Runtime &rt, jsi::String a, jsi::String b, jsi::Value c) = 0; + virtual jsi::String getStatusLowerCase(jsi::Runtime &rt, jsi::Object statusProp) = 0; + virtual jsi::Object getStateType(jsi::Runtime &rt, jsi::String a, jsi::String b, jsi::Value c, jsi::String d) = 0; virtual jsi::Object getStateTypeWithEnums(jsi::Runtime &rt, jsi::Object paramOfTypeWithEnums) = 0; }; @@ -446,13 +486,21 @@ private: return bridging::callFromJs( rt, &T::getStatusNum, jsInvoker_, instance_, std::move(statusProp)); } - jsi::Object getStateType(jsi::Runtime &rt, jsi::String a, jsi::String b, jsi::Value c) override { + jsi::String getStatusLowerCase(jsi::Runtime &rt, jsi::Object statusProp) override { + static_assert( + bridging::getParameterCount(&T::getStatusLowerCase) == 2, + \\"Expected getStatusLowerCase(...) to have 2 parameters\\"); + + return bridging::callFromJs( + rt, &T::getStatusLowerCase, jsInvoker_, instance_, std::move(statusProp)); + } + jsi::Object getStateType(jsi::Runtime &rt, jsi::String a, jsi::String b, jsi::Value c, jsi::String d) override { static_assert( - bridging::getParameterCount(&T::getStateType) == 4, - \\"Expected getStateType(...) to have 4 parameters\\"); + bridging::getParameterCount(&T::getStateType) == 5, + \\"Expected getStateType(...) to have 5 parameters\\"); return bridging::callFromJs( - rt, &T::getStateType, jsInvoker_, instance_, std::move(a), std::move(b), std::move(c)); + rt, &T::getStateType, jsInvoker_, instance_, std::move(a), std::move(b), std::move(c), std::move(d)); } jsi::Object getStateTypeWithEnums(jsi::Runtime &rt, jsi::Object paramOfTypeWithEnums) override { static_assert( @@ -2146,6 +2194,38 @@ private: }; +#pragma mark - NativeEnumTurboModuleStatusLowerCaseEnum + +enum class NativeEnumTurboModuleStatusLowerCaseEnum { Active, Paused, Off }; + +template <> +struct Bridging { + static NativeEnumTurboModuleStatusLowerCaseEnum fromJs(jsi::Runtime &rt, const jsi::String &rawValue) { + std::string value = rawValue.utf8(rt); + if (value == \\"active\\") { + return NativeEnumTurboModuleStatusLowerCaseEnum::Active; + } else if (value == \\"paused\\") { + return NativeEnumTurboModuleStatusLowerCaseEnum::Paused; + } else if (value == \\"off\\") { + return NativeEnumTurboModuleStatusLowerCaseEnum::Off; + } else { + throw jsi::JSError(rt, \\"No appropriate enum member found for value\\"); + } + } + + static jsi::String toJs(jsi::Runtime &rt, NativeEnumTurboModuleStatusLowerCaseEnum value) { + if (value == NativeEnumTurboModuleStatusLowerCaseEnum::Active) { + return bridging::toJs(rt, \\"active\\"); + } else if (value == NativeEnumTurboModuleStatusLowerCaseEnum::Paused) { + return bridging::toJs(rt, \\"paused\\"); + } else if (value == NativeEnumTurboModuleStatusLowerCaseEnum::Off) { + return bridging::toJs(rt, \\"off\\"); + } else { + throw jsi::JSError(rt, \\"No appropriate enum member found for enum value\\"); + } + } +}; + #pragma mark - NativeEnumTurboModuleStatusNumEnum enum class NativeEnumTurboModuleStatusNumEnum { Active, Paused, Off }; @@ -2285,14 +2365,15 @@ struct NativeEnumTurboModuleStateTypeBridging { #pragma mark - NativeEnumTurboModuleStateTypeWithEnums -template +template struct NativeEnumTurboModuleStateTypeWithEnums { P0 state; P1 regular; P2 str; P3 num; + P4 lowerCase; bool operator==(const NativeEnumTurboModuleStateTypeWithEnums &other) const { - return state == other.state && regular == other.regular && str == other.str && num == other.num; + return state == other.state && regular == other.regular && str == other.str && num == other.num && lowerCase == other.lowerCase; } }; @@ -2308,7 +2389,8 @@ struct NativeEnumTurboModuleStateTypeWithEnumsBridging { bridging::fromJs(rt, value.getProperty(rt, \\"state\\"), jsInvoker), bridging::fromJs(rt, value.getProperty(rt, \\"regular\\"), jsInvoker), bridging::fromJs(rt, value.getProperty(rt, \\"str\\"), jsInvoker), - bridging::fromJs(rt, value.getProperty(rt, \\"num\\"), jsInvoker)}; + bridging::fromJs(rt, value.getProperty(rt, \\"num\\"), jsInvoker), + bridging::fromJs(rt, value.getProperty(rt, \\"lowerCase\\"), jsInvoker)}; return result; } @@ -2328,6 +2410,10 @@ struct NativeEnumTurboModuleStateTypeWithEnumsBridging { static jsi::Value numToJs(jsi::Runtime &rt, decltype(types.num) value) { return bridging::toJs(rt, value); } + + static jsi::String lowerCaseToJs(jsi::Runtime &rt, decltype(types.lowerCase) value) { + return bridging::toJs(rt, value); + } #endif static jsi::Object toJs( @@ -2339,6 +2425,7 @@ struct NativeEnumTurboModuleStateTypeWithEnumsBridging { result.setProperty(rt, \\"regular\\", bridging::toJs(rt, value.regular, jsInvoker)); result.setProperty(rt, \\"str\\", bridging::toJs(rt, value.str, jsInvoker)); result.setProperty(rt, \\"num\\", bridging::toJs(rt, value.num, jsInvoker)); + result.setProperty(rt, \\"lowerCase\\", bridging::toJs(rt, value.lowerCase, jsInvoker)); return result; } }; @@ -2351,7 +2438,8 @@ public: virtual jsi::String getStatusRegular(jsi::Runtime &rt, jsi::Object statusProp) = 0; virtual jsi::String getStatusStr(jsi::Runtime &rt, jsi::Object statusProp) = 0; virtual jsi::Value getStatusNum(jsi::Runtime &rt, jsi::Object statusProp) = 0; - virtual jsi::Object getStateType(jsi::Runtime &rt, jsi::String a, jsi::String b, jsi::Value c) = 0; + virtual jsi::String getStatusLowerCase(jsi::Runtime &rt, jsi::Object statusProp) = 0; + virtual jsi::Object getStateType(jsi::Runtime &rt, jsi::String a, jsi::String b, jsi::Value c, jsi::String d) = 0; virtual jsi::Object getStateTypeWithEnums(jsi::Runtime &rt, jsi::Object paramOfTypeWithEnums) = 0; }; @@ -2400,13 +2488,21 @@ private: return bridging::callFromJs( rt, &T::getStatusNum, jsInvoker_, instance_, std::move(statusProp)); } - jsi::Object getStateType(jsi::Runtime &rt, jsi::String a, jsi::String b, jsi::Value c) override { + jsi::String getStatusLowerCase(jsi::Runtime &rt, jsi::Object statusProp) override { + static_assert( + bridging::getParameterCount(&T::getStatusLowerCase) == 2, + \\"Expected getStatusLowerCase(...) to have 2 parameters\\"); + + return bridging::callFromJs( + rt, &T::getStatusLowerCase, jsInvoker_, instance_, std::move(statusProp)); + } + jsi::Object getStateType(jsi::Runtime &rt, jsi::String a, jsi::String b, jsi::Value c, jsi::String d) override { static_assert( - bridging::getParameterCount(&T::getStateType) == 4, - \\"Expected getStateType(...) to have 4 parameters\\"); + bridging::getParameterCount(&T::getStateType) == 5, + \\"Expected getStateType(...) to have 5 parameters\\"); return bridging::callFromJs( - rt, &T::getStateType, jsInvoker_, instance_, std::move(a), std::move(b), std::move(c)); + rt, &T::getStateType, jsInvoker_, instance_, std::move(a), std::move(b), std::move(c), std::move(d)); } jsi::Object getStateTypeWithEnums(jsi::Runtime &rt, jsi::Object paramOfTypeWithEnums) override { static_assert( diff --git a/packages/react-native-codegen/e2e/__tests__/modules/__snapshots__/GenerateModuleObjCpp-test.js.snap b/packages/react-native-codegen/e2e/__tests__/modules/__snapshots__/GenerateModuleObjCpp-test.js.snap index 3d9e6460c05a78..6aa2ad226091ba 100644 --- a/packages/react-native-codegen/e2e/__tests__/modules/__snapshots__/GenerateModuleObjCpp-test.js.snap +++ b/packages/react-native-codegen/e2e/__tests__/modules/__snapshots__/GenerateModuleObjCpp-test.js.snap @@ -105,6 +105,7 @@ namespace JS { NSString *regular() const; NSString *str() const; double num() const; + NSString *lowerCase() const; StateTypeWithEnums(NSDictionary *const v) : _v(v) {} private: @@ -121,9 +122,11 @@ namespace JS { - (NSString *)getStatusRegular:(JS::NativeEnumTurboModule::StateType &)statusProp; - (NSString *)getStatusStr:(JS::NativeEnumTurboModule::StateType &)statusProp; - (NSNumber *)getStatusNum:(JS::NativeEnumTurboModule::StateType &)statusProp; +- (NSString *)getStatusLowerCase:(JS::NativeEnumTurboModule::StateType &)statusProp; - (NSDictionary *)getStateType:(NSString *)a b:(NSString *)b - c:(double)c; + c:(double)c + d:(NSString *)d; - (NSDictionary *)getStateTypeWithEnums:(JS::NativeEnumTurboModule::StateTypeWithEnums &)paramOfTypeWithEnums; @end @@ -1052,6 +1055,11 @@ inline double JS::NativeEnumTurboModule::StateTypeWithEnums::num() const id const p = _v[@\\"num\\"]; return RCTBridgingToDouble(p); } +inline NSString *JS::NativeEnumTurboModule::StateTypeWithEnums::lowerCase() const +{ + id const p = _v[@\\"lowerCase\\"]; + return RCTBridgingToString(p); +} inline bool JS::NativeObjectTurboModule::SpecDifficultObjectAE::D() const @@ -1449,6 +1457,7 @@ namespace JS { NSString *regular() const; NSString *str() const; double num() const; + NSString *lowerCase() const; StateTypeWithEnums(NSDictionary *const v) : _v(v) {} private: @@ -1465,9 +1474,11 @@ namespace JS { - (NSString *)getStatusRegular:(JS::NativeEnumTurboModule::StateType &)statusProp; - (NSString *)getStatusStr:(JS::NativeEnumTurboModule::StateType &)statusProp; - (NSNumber *)getStatusNum:(JS::NativeEnumTurboModule::StateType &)statusProp; +- (NSString *)getStatusLowerCase:(JS::NativeEnumTurboModule::StateType &)statusProp; - (NSDictionary *)getStateType:(NSString *)a b:(NSString *)b - c:(double)c; + c:(double)c + d:(NSString *)d; - (NSDictionary *)getStateTypeWithEnums:(JS::NativeEnumTurboModule::StateTypeWithEnums &)paramOfTypeWithEnums; @end @@ -2396,6 +2407,11 @@ inline double JS::NativeEnumTurboModule::StateTypeWithEnums::num() const id const p = _v[@\\"num\\"]; return RCTBridgingToDouble(p); } +inline NSString *JS::NativeEnumTurboModule::StateTypeWithEnums::lowerCase() const +{ + id const p = _v[@\\"lowerCase\\"]; + return RCTBridgingToString(p); +} inline bool JS::NativeObjectTurboModule::SpecDifficultObjectAE::D() const @@ -2799,8 +2815,12 @@ namespace facebook::react { return static_cast(turboModule).invokeObjCMethod(rt, NumberKind, \\"getStatusNum\\", @selector(getStatusNum:), args, count); } + static facebook::jsi::Value __hostFunction_NativeEnumTurboModuleSpecJSI_getStatusLowerCase(facebook::jsi::Runtime& rt, TurboModule &turboModule, const facebook::jsi::Value* args, size_t count) { + return static_cast(turboModule).invokeObjCMethod(rt, StringKind, \\"getStatusLowerCase\\", @selector(getStatusLowerCase:), args, count); + } + static facebook::jsi::Value __hostFunction_NativeEnumTurboModuleSpecJSI_getStateType(facebook::jsi::Runtime& rt, TurboModule &turboModule, const facebook::jsi::Value* args, size_t count) { - return static_cast(turboModule).invokeObjCMethod(rt, ObjectKind, \\"getStateType\\", @selector(getStateType:b:c:), args, count); + return static_cast(turboModule).invokeObjCMethod(rt, ObjectKind, \\"getStateType\\", @selector(getStateType:b:c:d:), args, count); } static facebook::jsi::Value __hostFunction_NativeEnumTurboModuleSpecJSI_getStateTypeWithEnums(facebook::jsi::Runtime& rt, TurboModule &turboModule, const facebook::jsi::Value* args, size_t count) { @@ -2819,7 +2839,10 @@ namespace facebook::react { methodMap_[\\"getStatusNum\\"] = MethodMetadata {1, __hostFunction_NativeEnumTurboModuleSpecJSI_getStatusNum}; setMethodArgConversionSelector(@\\"getStatusNum\\", 0, @\\"JS_NativeEnumTurboModule_StateType:\\"); - methodMap_[\\"getStateType\\"] = MethodMetadata {3, __hostFunction_NativeEnumTurboModuleSpecJSI_getStateType}; + methodMap_[\\"getStatusLowerCase\\"] = MethodMetadata {1, __hostFunction_NativeEnumTurboModuleSpecJSI_getStatusLowerCase}; + setMethodArgConversionSelector(@\\"getStatusLowerCase\\", 0, @\\"JS_NativeEnumTurboModule_StateType:\\"); + + methodMap_[\\"getStateType\\"] = MethodMetadata {4, __hostFunction_NativeEnumTurboModuleSpecJSI_getStateType}; methodMap_[\\"getStateTypeWithEnums\\"] = MethodMetadata {1, __hostFunction_NativeEnumTurboModuleSpecJSI_getStateTypeWithEnums}; diff --git a/packages/react-native-codegen/src/generators/modules/GenerateModuleH.js b/packages/react-native-codegen/src/generators/modules/GenerateModuleH.js index 12bf86c72284a3..ed6bab4d96b1a8 100644 --- a/packages/react-native-codegen/src/generators/modules/GenerateModuleH.js +++ b/packages/react-native-codegen/src/generators/modules/GenerateModuleH.js @@ -429,7 +429,7 @@ function generateEnum( return EnumTemplate({ enumName, - values: members.map(member => member.name).join(', '), + values: members.map(member => toSafeCppString(member.name)).join(', '), fromCases, toCases, nativeEnumMemberType,