Use hasteModuleName for C++ Turbo Module enums (#44631)

Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/44631

Changelog:
[General][Breaking] Use hasteModuleName for C++ Turbo Module enums

This is a follow up to https://github.com/facebook/react-native/pull/44630

This changes the names of C++ Turbo Modules enums to use the `hasteModuleName`.

Example: `NativeMyAbcModule.js` with this spec:
```
export enum EnumNone {
  NA,
  NB,
}

export interface Spec extends TurboModule {
  +getStrEnum: (arg: EnumNone) => EnumStr;t
}

export default (TurboModuleRegistry.get<Spec>('MyAbcModuleCxx'): ?Spec);
```

Before now we generated a base C++ struct with the name:
```
MyAbcModuleCxxEnumNone
           ^^^
```

Now the generate name is:
```
NativeMyAbcModuleEnumNone
^^^^^^
```

## Changes:
- No `Cxx` injected anymore
- Ensure base struct is `Native` prefixed (all RN JS TM specs start with it)

Reviewed By: cipolleschi

Differential Revision: D57602082

fbshipit-source-id: 9ebd68b8059dfbc6e2ec11065915cf049aa3cb0b
This commit is contained in:
Christoph Purrer
2024-05-23 10:23:36 -07:00
committed by Facebook GitHub Bot
parent b98c5b960c
commit b7fc5867f2
4 changed files with 89 additions and 84 deletions
@@ -390,12 +390,12 @@ struct Bridging<${enumName}> {
};
function generateEnum(
moduleName: string,
hasteModuleName: string,
origEnumName: string,
members: NativeModuleEnumMembers,
memberType: NativeModuleEnumMemberType,
): string {
const enumName = getEnumName(moduleName, origEnumName);
const enumName = getEnumName(hasteModuleName, origEnumName);
const nativeEnumMemberType: NativeEnumMemberValueType =
memberType === 'StringTypeAnnotation' ? 'std::string' : 'int32_t';
@@ -437,14 +437,14 @@ function generateEnum(
}
function createEnums(
moduleName: string,
hasteModuleName: string,
enumMap: NativeModuleEnumMap,
resolveAlias: AliasResolver,
): string {
return Object.entries(enumMap)
.map(([enumName, enumNode]) => {
return generateEnum(
moduleName,
hasteModuleName,
enumName,
enumNode.members,
enumNode.memberType,
@@ -455,7 +455,7 @@ function createEnums(
}
function translatePropertyToCpp(
moduleName: string,
hasteModuleName: string,
prop: NativeModulePropertyShape,
resolveAlias: AliasResolver,
enumMap: NativeModuleEnumMap,
@@ -470,7 +470,7 @@ function translatePropertyToCpp(
const paramTypes = propTypeAnnotation.params.map(param => {
const translatedParam = translatePrimitiveJSTypeToCpp(
moduleName,
hasteModuleName,
null,
param.typeAnnotation,
param.optional,
@@ -483,7 +483,7 @@ function translatePropertyToCpp(
});
const returnType = translatePrimitiveJSTypeToCpp(
moduleName,
hasteModuleName,
null,
propTypeAnnotation.returnTypeAnnotation,
false,
@@ -535,14 +535,14 @@ module.exports = {
resolveAlias,
enumMap,
);
const enums = createEnums(moduleName, enumMap, resolveAlias);
const enums = createEnums(hasteModuleName, enumMap, resolveAlias);
return [
ModuleClassDeclarationTemplate({
hasteModuleName,
moduleProperties: properties.map(prop =>
translatePropertyToCpp(
moduleName,
hasteModuleName,
prop,
resolveAlias,
enumMap,
@@ -556,7 +556,12 @@ module.exports = {
hasteModuleName,
moduleName,
moduleProperties: properties.map(prop =>
translatePropertyToCpp(moduleName, prop, resolveAlias, enumMap),
translatePropertyToCpp(
hasteModuleName,
prop,
resolveAlias,
enumMap,
),
),
}),
];