diff --git a/packages/react-native-codegen/src/generators/modules/GenerateModuleHObjCpp.js b/packages/react-native-codegen/src/generators/modules/GenerateModuleHObjCpp.js index 1225a537db..be4a3ac79b 100644 --- a/packages/react-native-codegen/src/generators/modules/GenerateModuleHObjCpp.js +++ b/packages/react-native-codegen/src/generators/modules/GenerateModuleHObjCpp.js @@ -182,26 +182,30 @@ module.exports = { .map(prop => { const nativeArgs = prop.typeAnnotation.params .map((param, i) => { + let paramObjCType; if ( param.typeAnnotation.type === 'ObjectTypeAnnotation' && param.typeAnnotation.properties ) { + const variableName = + capitalizeFirstLetter(prop.name) + + capitalizeFirstLetter(param.name); objectForGeneratingStructs.push({ - name: - capitalizeFirstLetter(prop.name) + - capitalizeFirstLetter(param.name), + name: variableName, object: { type: 'ObjectTypeAnnotation', properties: param.typeAnnotation.properties, }, }); + paramObjCType = `JS::Native::_MODULE_NAME_::::Spec${variableName}&`; + } else { + paramObjCType = translatePrimitiveJSTypeToObjCType( + param, + `Unspopported type for param "${param.name}" in ${ + prop.name + }. Found: ${param.typeAnnotation.type}`, + ); } - const paramObjCType = translatePrimitiveJSTypeToObjCType( - param, - `Unspopported type for param "${param.name}" in ${ - prop.name - }. Found: ${param.typeAnnotation.type}`, - ); return `${i === 0 ? '' : param.name}:(${paramObjCType})${ param.name }`; diff --git a/packages/react-native-codegen/src/generators/modules/__tests__/__snapshots__/GenerateModuleHObjCpp-test.js.snap b/packages/react-native-codegen/src/generators/modules/__tests__/__snapshots__/GenerateModuleHObjCpp-test.js.snap index d13ddcf96f..5e6858d240 100644 --- a/packages/react-native-codegen/src/generators/modules/__tests__/__snapshots__/GenerateModuleHObjCpp-test.js.snap +++ b/packages/react-native-codegen/src/generators/modules/__tests__/__snapshots__/GenerateModuleHObjCpp-test.js.snap @@ -149,7 +149,7 @@ inline NSString *JS::NativeSampleTurboModule::SpecDifficultAE::F() const @protocol NativeSampleTurboModuleSpec -- (NSDictionary *) difficult:(NSDictionary *)A; +- (NSDictionary *) difficult:(JS::NativeSampleTurboModule::SpecDifficultA&)A; @end