diff --git a/packages/react-native-codegen/src/CodegenSchema.js b/packages/react-native-codegen/src/CodegenSchema.js index 6ed318c623..55d9b2aa7b 100644 --- a/packages/react-native-codegen/src/CodegenSchema.js +++ b/packages/react-native-codegen/src/CodegenSchema.js @@ -267,13 +267,13 @@ export type Required = $ReadOnly<{...T, nullable: false}>; export type NativeModuleSchema = $ReadOnly<{| // We only support aliases to Objects - aliases: $ReadOnly, + aliases: NativeModuleAliasMap, properties: $ReadOnlyArray, |}>; -export type NativeModuleAliasMap = { +export type NativeModuleAliasMap = $ReadOnly<{| [aliasName: string]: Required, -}; +|}>; export type NativeModulePropertySchema = $ReadOnly<{| name: string, diff --git a/packages/react-native-codegen/src/parsers/flow/modules/index.js b/packages/react-native-codegen/src/parsers/flow/modules/index.js index 31de4e511f..ca1b95216e 100644 --- a/packages/react-native-codegen/src/parsers/flow/modules/index.js +++ b/packages/react-native-codegen/src/parsers/flow/modules/index.js @@ -38,7 +38,7 @@ function translateTypeAnnotation( */ flowTypeAnnotation: $FlowFixMe, types: TypeDeclarationMap, - aliasMap: NativeModuleAliasMap, + aliasMap: {...NativeModuleAliasMap}, ): NativeModuleTypeAnnotation { const { nullable, @@ -306,7 +306,7 @@ function translateFunctionTypeAnnotation( flowFunctionTypeAnnotation: $FlowFixMe, types: TypeDeclarationMap, nullable: boolean, - aliasMap: NativeModuleAliasMap, + aliasMap: {...NativeModuleAliasMap}, ): NativeModuleFunctionTypeAnnotation { const params: Array = []; for (const flowParam of (flowFunctionTypeAnnotation.params: $ReadOnlyArray<$FlowFixMe>)) { @@ -367,7 +367,7 @@ function buildPropertySchema( // Flow type this node property: $FlowFixMe, types: TypeDeclarationMap, - aliasMap: NativeModuleAliasMap, + aliasMap: {...NativeModuleAliasMap}, ): NativeModulePropertySchema { let nullable = false; let {key, value} = property; @@ -422,7 +422,7 @@ function buildModuleSchema( return (declaration.body.properties: $ReadOnlyArray<$FlowFixMe>) .filter(property => property.type === 'ObjectTypeProperty') .map(property => { - const aliasMap: NativeModuleAliasMap = {}; + const aliasMap: {...NativeModuleAliasMap} = {}; return { aliasMap: aliasMap, propertySchema: buildPropertySchema(