From 518c9a2e1ac36132ba79c0f73700802cc2876176 Mon Sep 17 00:00:00 2001 From: Ramanpreet Nara Date: Thu, 15 Oct 2020 22:50:19 -0700 Subject: [PATCH] Update JavaPoet Module generator to follow new NativeModule schema Summary: Changelog: [Internal] (Note: this ignores all push blocking failures!) Reviewed By: fkgozali Differential Revision: D24236813 fbshipit-source-id: 1fa573fade09914da673cd3750d78e4619ff4581 --- .../codegen/generator/SchemaJsonParser.java | 28 ++++++++----------- 1 file changed, 11 insertions(+), 17 deletions(-) diff --git a/packages/react-native-codegen/android/gradlePlugin-build/gradlePlugin/src/main/java/com/facebook/react/codegen/generator/SchemaJsonParser.java b/packages/react-native-codegen/android/gradlePlugin-build/gradlePlugin/src/main/java/com/facebook/react/codegen/generator/SchemaJsonParser.java index 68c7d839f0..b27a4e0ee6 100644 --- a/packages/react-native-codegen/android/gradlePlugin-build/gradlePlugin/src/main/java/com/facebook/react/codegen/generator/SchemaJsonParser.java +++ b/packages/react-native-codegen/android/gradlePlugin-build/gradlePlugin/src/main/java/com/facebook/react/codegen/generator/SchemaJsonParser.java @@ -67,25 +67,19 @@ public final class SchemaJsonParser { entry -> { final String jsModuleName = entry.getKey(); final JsonObject jsModule = entry.getValue().getAsJsonObject(); - final JsonObject nativeModules = jsModule.getAsJsonObject("nativeModules"); - if (nativeModules == null) { - // TODO: Handle components-related sections. + final String jsModuleType = jsModule.get("type").getAsString(); + + if (!"NativeModule".equals(jsModuleType)) { return; } - nativeModules - .entrySet() - .forEach( - e -> { - final Type parsedType = - parseNativeModule( - // TODO (T71955395): NativeModule spec type name does not - // exist in the schema. For now assume it's "Spec". - // The final type name will be the output class name. - TypeId.of(jsModuleName, "Native" + e.getKey() + "Spec"), - e.getValue().getAsJsonObject()); - mTypeData.addType(parsedType); - }); + final Type parsedType = + parseNativeModule( + // TODO (T71955395): NativeModule spec type name does not + // exist in the schema. For now assume it's "Spec". + // The final type name will be the output class name. + TypeId.of(jsModuleName, jsModuleName + "Spec"), jsModule); + mTypeData.addType(parsedType); }); } @@ -162,7 +156,7 @@ public final class SchemaJsonParser { private NativeModuleType parseNativeModule(final TypeId typeId, final JsonObject json) { final JsonObject aliases = json.getAsJsonObject("aliases"); - final JsonArray properties = json.getAsJsonArray("properties"); + final JsonArray properties = json.getAsJsonObject("spec").getAsJsonArray("properties"); final ImmutableList collectedAliases = ImmutableList.copyOf(