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 541b349dbba..b6a85b3f1ac 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 @@ -193,7 +193,7 @@ enum NativeEnumTurboModuleStatusRegularEnum { Active, Paused, Off }; template <> struct Bridging { - static NativeEnumTurboModuleStatusRegularEnum fromJs(jsi::Runtime &rt, const jsi::String &rawValue) { + static NativeEnumTurboModuleStatusRegularEnum fromJs(jsi::Runtime &rt, const jsi::String &rawValue, const std::shared_ptr &jsInvoker) { std::string value = rawValue.utf8(rt); if (value == \\"Active\\") { return NativeEnumTurboModuleStatusRegularEnum::Active; @@ -206,7 +206,7 @@ struct Bridging { } } - static jsi::String toJs(jsi::Runtime &rt, NativeEnumTurboModuleStatusRegularEnum value) { + static jsi::String toJs(jsi::Runtime &rt, NativeEnumTurboModuleStatusRegularEnum value, const std::shared_ptr &jsInvoker) { if (value == NativeEnumTurboModuleStatusRegularEnum::Active) { return bridging::toJs(rt, \\"Active\\"); } else if (value == NativeEnumTurboModuleStatusRegularEnum::Paused) { @@ -225,7 +225,7 @@ enum NativeEnumTurboModuleStatusStrEnum { Active, Paused, Off }; template <> struct Bridging { - static NativeEnumTurboModuleStatusStrEnum fromJs(jsi::Runtime &rt, const jsi::String &rawValue) { + static NativeEnumTurboModuleStatusStrEnum fromJs(jsi::Runtime &rt, const jsi::String &rawValue, const std::shared_ptr &jsInvoker) { std::string value = rawValue.utf8(rt); if (value == \\"active\\") { return NativeEnumTurboModuleStatusStrEnum::Active; @@ -238,7 +238,7 @@ struct Bridging { } } - static jsi::String toJs(jsi::Runtime &rt, NativeEnumTurboModuleStatusStrEnum value) { + static jsi::String toJs(jsi::Runtime &rt, NativeEnumTurboModuleStatusStrEnum value, const std::shared_ptr &jsInvoker) { if (value == NativeEnumTurboModuleStatusStrEnum::Active) { return bridging::toJs(rt, \\"active\\"); } else if (value == NativeEnumTurboModuleStatusStrEnum::Paused) { @@ -257,8 +257,8 @@ enum NativeEnumTurboModuleStatusNumEnum { Active, Paused, Off }; template <> struct Bridging { - static NativeEnumTurboModuleStatusNumEnum fromJs(jsi::Runtime &rt, int32_t value) { - + static NativeEnumTurboModuleStatusNumEnum fromJs(jsi::Runtime &rt, const jsi::Value &rawValue, const std::shared_ptr &jsInvoker) { + double value = (double)rawValue.asNumber(); if (value == 2) { return NativeEnumTurboModuleStatusNumEnum::Active; } else if (value == 1) { @@ -270,7 +270,7 @@ struct Bridging { } } - static jsi::Value toJs(jsi::Runtime &rt, NativeEnumTurboModuleStatusNumEnum value) { + static jsi::Value toJs(jsi::Runtime &rt, NativeEnumTurboModuleStatusNumEnum value, const std::shared_ptr &jsInvoker) { if (value == NativeEnumTurboModuleStatusNumEnum::Active) { return bridging::toJs(rt, 2); } else if (value == NativeEnumTurboModuleStatusNumEnum::Paused) { @@ -289,8 +289,8 @@ enum NativeEnumTurboModuleStatusFractionEnum { Active, Paused, Off }; template <> struct Bridging { - static NativeEnumTurboModuleStatusFractionEnum fromJs(jsi::Runtime &rt, float value) { - + static NativeEnumTurboModuleStatusFractionEnum fromJs(jsi::Runtime &rt, const jsi::Value &rawValue, const std::shared_ptr &jsInvoker) { + double value = (double)rawValue.asNumber(); if (value == 0.2f) { return NativeEnumTurboModuleStatusFractionEnum::Active; } else if (value == 0.1f) { @@ -302,7 +302,7 @@ struct Bridging { } } - static jsi::Value toJs(jsi::Runtime &rt, NativeEnumTurboModuleStatusFractionEnum value) { + static jsi::Value toJs(jsi::Runtime &rt, NativeEnumTurboModuleStatusFractionEnum value, const std::shared_ptr &jsInvoker) { if (value == NativeEnumTurboModuleStatusFractionEnum::Active) { return bridging::toJs(rt, 0.2f); } else if (value == NativeEnumTurboModuleStatusFractionEnum::Paused) { @@ -2136,7 +2136,7 @@ enum NativeEnumTurboModuleStatusRegularEnum { Active, Paused, Off }; template <> struct Bridging { - static NativeEnumTurboModuleStatusRegularEnum fromJs(jsi::Runtime &rt, const jsi::String &rawValue) { + static NativeEnumTurboModuleStatusRegularEnum fromJs(jsi::Runtime &rt, const jsi::String &rawValue, const std::shared_ptr &jsInvoker) { std::string value = rawValue.utf8(rt); if (value == \\"Active\\") { return NativeEnumTurboModuleStatusRegularEnum::Active; @@ -2149,7 +2149,7 @@ struct Bridging { } } - static jsi::String toJs(jsi::Runtime &rt, NativeEnumTurboModuleStatusRegularEnum value) { + static jsi::String toJs(jsi::Runtime &rt, NativeEnumTurboModuleStatusRegularEnum value, const std::shared_ptr &jsInvoker) { if (value == NativeEnumTurboModuleStatusRegularEnum::Active) { return bridging::toJs(rt, \\"Active\\"); } else if (value == NativeEnumTurboModuleStatusRegularEnum::Paused) { @@ -2168,7 +2168,7 @@ enum NativeEnumTurboModuleStatusStrEnum { Active, Paused, Off }; template <> struct Bridging { - static NativeEnumTurboModuleStatusStrEnum fromJs(jsi::Runtime &rt, const jsi::String &rawValue) { + static NativeEnumTurboModuleStatusStrEnum fromJs(jsi::Runtime &rt, const jsi::String &rawValue, const std::shared_ptr &jsInvoker) { std::string value = rawValue.utf8(rt); if (value == \\"active\\") { return NativeEnumTurboModuleStatusStrEnum::Active; @@ -2181,7 +2181,7 @@ struct Bridging { } } - static jsi::String toJs(jsi::Runtime &rt, NativeEnumTurboModuleStatusStrEnum value) { + static jsi::String toJs(jsi::Runtime &rt, NativeEnumTurboModuleStatusStrEnum value, const std::shared_ptr &jsInvoker) { if (value == NativeEnumTurboModuleStatusStrEnum::Active) { return bridging::toJs(rt, \\"active\\"); } else if (value == NativeEnumTurboModuleStatusStrEnum::Paused) { @@ -2200,8 +2200,8 @@ enum NativeEnumTurboModuleStatusNumEnum { Active, Paused, Off }; template <> struct Bridging { - static NativeEnumTurboModuleStatusNumEnum fromJs(jsi::Runtime &rt, int32_t value) { - + static NativeEnumTurboModuleStatusNumEnum fromJs(jsi::Runtime &rt, const jsi::Value &rawValue, const std::shared_ptr &jsInvoker) { + double value = (double)rawValue.asNumber(); if (value == 2) { return NativeEnumTurboModuleStatusNumEnum::Active; } else if (value == 1) { @@ -2213,7 +2213,7 @@ struct Bridging { } } - static jsi::Value toJs(jsi::Runtime &rt, NativeEnumTurboModuleStatusNumEnum value) { + static jsi::Value toJs(jsi::Runtime &rt, NativeEnumTurboModuleStatusNumEnum value, const std::shared_ptr &jsInvoker) { if (value == NativeEnumTurboModuleStatusNumEnum::Active) { return bridging::toJs(rt, 2); } else if (value == NativeEnumTurboModuleStatusNumEnum::Paused) { @@ -2232,8 +2232,8 @@ enum NativeEnumTurboModuleStatusFractionEnum { Active, Paused, Off }; template <> struct Bridging { - static NativeEnumTurboModuleStatusFractionEnum fromJs(jsi::Runtime &rt, float value) { - + static NativeEnumTurboModuleStatusFractionEnum fromJs(jsi::Runtime &rt, const jsi::Value &rawValue, const std::shared_ptr &jsInvoker) { + double value = (double)rawValue.asNumber(); if (value == 0.2f) { return NativeEnumTurboModuleStatusFractionEnum::Active; } else if (value == 0.1f) { @@ -2245,7 +2245,7 @@ struct Bridging { } } - static jsi::Value toJs(jsi::Runtime &rt, NativeEnumTurboModuleStatusFractionEnum value) { + static jsi::Value toJs(jsi::Runtime &rt, NativeEnumTurboModuleStatusFractionEnum value, const std::shared_ptr &jsInvoker) { if (value == NativeEnumTurboModuleStatusFractionEnum::Active) { return bridging::toJs(rt, 0.2f); } else if (value == NativeEnumTurboModuleStatusFractionEnum::Paused) { diff --git a/packages/react-native-codegen/src/generators/modules/GenerateModuleH.js b/packages/react-native-codegen/src/generators/modules/GenerateModuleH.js index 56e1a09fcfc..0cf09e26839 100644 --- a/packages/react-native-codegen/src/generators/modules/GenerateModuleH.js +++ b/packages/react-native-codegen/src/generators/modules/GenerateModuleH.js @@ -318,18 +318,18 @@ const EnumTemplate = ({ toCases: string, nativeEnumMemberType: NativeEnumMemberValueType, }) => { - const fromValue = + const [fromValue, fromValueConversion, toValue] = nativeEnumMemberType === 'std::string' - ? 'const jsi::String &rawValue' - : `${nativeEnumMemberType} value`; - - const fromValueConvertion = - nativeEnumMemberType === 'std::string' - ? 'std::string value = rawValue.utf8(rt);' - : ''; - - const toValue = - nativeEnumMemberType === 'std::string' ? 'jsi::String' : 'jsi::Value'; + ? [ + 'const jsi::String &rawValue', + 'std::string value = rawValue.utf8(rt);', + 'jsi::String', + ] + : [ + 'const jsi::Value &rawValue', + 'double value = (double)rawValue.asNumber();', + 'jsi::Value', + ]; return ` #pragma mark - ${enumName} @@ -338,12 +338,12 @@ enum ${enumName} { ${values} }; template <> struct Bridging<${enumName}> { - static ${enumName} fromJs(jsi::Runtime &rt, ${fromValue}) { - ${fromValueConvertion} + static ${enumName} fromJs(jsi::Runtime &rt, ${fromValue}, const std::shared_ptr &jsInvoker) { + ${fromValueConversion} ${fromCases} } - static ${toValue} toJs(jsi::Runtime &rt, ${enumName} value) { + static ${toValue} toJs(jsi::Runtime &rt, ${enumName} value, const std::shared_ptr &jsInvoker) { ${toCases} } };`; diff --git a/packages/react-native-codegen/src/generators/modules/__tests__/__snapshots__/GenerateModuleH-test.js.snap b/packages/react-native-codegen/src/generators/modules/__tests__/__snapshots__/GenerateModuleH-test.js.snap index e0bd0a41e96..4f3f7b1d98c 100644 --- a/packages/react-native-codegen/src/generators/modules/__tests__/__snapshots__/GenerateModuleH-test.js.snap +++ b/packages/react-native-codegen/src/generators/modules/__tests__/__snapshots__/GenerateModuleH-test.js.snap @@ -211,8 +211,8 @@ enum SampleTurboModuleCxxNumEnum { ONE, TWO }; template <> struct Bridging { - static SampleTurboModuleCxxNumEnum fromJs(jsi::Runtime &rt, int32_t value) { - + static SampleTurboModuleCxxNumEnum fromJs(jsi::Runtime &rt, const jsi::Value &rawValue, const std::shared_ptr &jsInvoker) { + double value = (double)rawValue.asNumber(); if (value == 1) { return SampleTurboModuleCxxNumEnum::ONE; } else if (value == 2) { @@ -222,7 +222,7 @@ struct Bridging { } } - static jsi::Value toJs(jsi::Runtime &rt, SampleTurboModuleCxxNumEnum value) { + static jsi::Value toJs(jsi::Runtime &rt, SampleTurboModuleCxxNumEnum value, const std::shared_ptr &jsInvoker) { if (value == SampleTurboModuleCxxNumEnum::ONE) { return bridging::toJs(rt, 1); } else if (value == SampleTurboModuleCxxNumEnum::TWO) { @@ -239,8 +239,8 @@ enum SampleTurboModuleCxxFloatEnum { POINT_ZERO, POINT_ONE, POINT_TWO }; template <> struct Bridging { - static SampleTurboModuleCxxFloatEnum fromJs(jsi::Runtime &rt, float value) { - + static SampleTurboModuleCxxFloatEnum fromJs(jsi::Runtime &rt, const jsi::Value &rawValue, const std::shared_ptr &jsInvoker) { + double value = (double)rawValue.asNumber(); if (value == 0.0f) { return SampleTurboModuleCxxFloatEnum::POINT_ZERO; } else if (value == 0.1f) { @@ -252,7 +252,7 @@ struct Bridging { } } - static jsi::Value toJs(jsi::Runtime &rt, SampleTurboModuleCxxFloatEnum value) { + static jsi::Value toJs(jsi::Runtime &rt, SampleTurboModuleCxxFloatEnum value, const std::shared_ptr &jsInvoker) { if (value == SampleTurboModuleCxxFloatEnum::POINT_ZERO) { return bridging::toJs(rt, 0.0f); } else if (value == SampleTurboModuleCxxFloatEnum::POINT_ONE) { @@ -271,7 +271,7 @@ enum SampleTurboModuleCxxStringEnum { HELLO, GoodBye }; template <> struct Bridging { - static SampleTurboModuleCxxStringEnum fromJs(jsi::Runtime &rt, const jsi::String &rawValue) { + static SampleTurboModuleCxxStringEnum fromJs(jsi::Runtime &rt, const jsi::String &rawValue, const std::shared_ptr &jsInvoker) { std::string value = rawValue.utf8(rt); if (value == \\"hello\\") { return SampleTurboModuleCxxStringEnum::HELLO; @@ -282,7 +282,7 @@ struct Bridging { } } - static jsi::String toJs(jsi::Runtime &rt, SampleTurboModuleCxxStringEnum value) { + static jsi::String toJs(jsi::Runtime &rt, SampleTurboModuleCxxStringEnum value, const std::shared_ptr &jsInvoker) { if (value == SampleTurboModuleCxxStringEnum::HELLO) { return bridging::toJs(rt, \\"hello\\"); } else if (value == SampleTurboModuleCxxStringEnum::GoodBye) { @@ -1209,8 +1209,8 @@ enum SampleTurboModuleNumEnum { ONE, TWO }; template <> struct Bridging { - static SampleTurboModuleNumEnum fromJs(jsi::Runtime &rt, int32_t value) { - + static SampleTurboModuleNumEnum fromJs(jsi::Runtime &rt, const jsi::Value &rawValue, const std::shared_ptr &jsInvoker) { + double value = (double)rawValue.asNumber(); if (value == 1) { return SampleTurboModuleNumEnum::ONE; } else if (value == 2) { @@ -1220,7 +1220,7 @@ struct Bridging { } } - static jsi::Value toJs(jsi::Runtime &rt, SampleTurboModuleNumEnum value) { + static jsi::Value toJs(jsi::Runtime &rt, SampleTurboModuleNumEnum value, const std::shared_ptr &jsInvoker) { if (value == SampleTurboModuleNumEnum::ONE) { return bridging::toJs(rt, 1); } else if (value == SampleTurboModuleNumEnum::TWO) { @@ -1237,8 +1237,8 @@ enum SampleTurboModuleFloatEnum { POINT_ZERO, POINT_ONE, POINT_TWO }; template <> struct Bridging { - static SampleTurboModuleFloatEnum fromJs(jsi::Runtime &rt, float value) { - + static SampleTurboModuleFloatEnum fromJs(jsi::Runtime &rt, const jsi::Value &rawValue, const std::shared_ptr &jsInvoker) { + double value = (double)rawValue.asNumber(); if (value == 0.0f) { return SampleTurboModuleFloatEnum::POINT_ZERO; } else if (value == 0.1f) { @@ -1250,7 +1250,7 @@ struct Bridging { } } - static jsi::Value toJs(jsi::Runtime &rt, SampleTurboModuleFloatEnum value) { + static jsi::Value toJs(jsi::Runtime &rt, SampleTurboModuleFloatEnum value, const std::shared_ptr &jsInvoker) { if (value == SampleTurboModuleFloatEnum::POINT_ZERO) { return bridging::toJs(rt, 0.0f); } else if (value == SampleTurboModuleFloatEnum::POINT_ONE) { @@ -1269,7 +1269,7 @@ enum SampleTurboModuleStringEnum { HELLO, GoodBye }; template <> struct Bridging { - static SampleTurboModuleStringEnum fromJs(jsi::Runtime &rt, const jsi::String &rawValue) { + static SampleTurboModuleStringEnum fromJs(jsi::Runtime &rt, const jsi::String &rawValue, const std::shared_ptr &jsInvoker) { std::string value = rawValue.utf8(rt); if (value == \\"hello\\") { return SampleTurboModuleStringEnum::HELLO; @@ -1280,7 +1280,7 @@ struct Bridging { } } - static jsi::String toJs(jsi::Runtime &rt, SampleTurboModuleStringEnum value) { + static jsi::String toJs(jsi::Runtime &rt, SampleTurboModuleStringEnum value, const std::shared_ptr &jsInvoker) { if (value == SampleTurboModuleStringEnum::HELLO) { return bridging::toJs(rt, \\"hello\\"); } else if (value == SampleTurboModuleStringEnum::GoodBye) {