mirror of
https://github.com/facebook/react-native.git
synced 2025-11-01 09:14:26 +00:00
rn_codegen: define a method to convert package.json codegenConfig into Buck format (#36868)
Summary: Pull Request resolved: https://github.com/facebook/react-native/pull/36868 Given a codegenConfig definition in a library's package.json, convert it into Buck specific codegen format, as defined by the kwargs of rn_codegen(). Reference: https://reactnative.dev/docs/next/new-architecture-library-intro#configure-codegen Changelog: [Internal] Reviewed By: cortinico, mdvacca Differential Revision: D44857743 fbshipit-source-id: 82011161d43cebe701cd2b129208054c21d3175a
This commit is contained in:
committed by
Facebook GitHub Bot
parent
ad4a857d3a
commit
d49f1ebc65
@@ -99,3 +99,32 @@ def rn_codegen(
|
||||
schema_target = ":codegen_rn_components_schema_{}".format(component_spec_name),
|
||||
library_labels = library_labels,
|
||||
)
|
||||
|
||||
# Given the codegenConfig defined inside package.json, convert it to the Buck specific configs.
|
||||
# Specification: https://reactnative.dev/docs/next/new-architecture-library-intro#configure-codegen
|
||||
def buck_codegen_config_from_package_codegen_config(package_codegen_config):
|
||||
configs = {}
|
||||
|
||||
name = package_codegen_config["name"]
|
||||
android_package_name = "com.facebook.fbreact.specs"
|
||||
if "android" in package_codegen_config:
|
||||
android_config = package_codegen_config["android"]
|
||||
if "javaPackageName" in android_config:
|
||||
# Note: assume Kotlin will use the same package name
|
||||
android_package_name = android_config["javaPackageName"]
|
||||
|
||||
codegen_type = package_codegen_config["type"]
|
||||
if codegen_type == "modules" or codegen_type == "all":
|
||||
configs["codegen_modules"] = True
|
||||
configs["native_module_spec_name"] = name
|
||||
configs["android_package_name"] = android_package_name
|
||||
|
||||
if codegen_type == "components" or codegen_type == "all":
|
||||
configs["codegen_components"] = True
|
||||
configs["native_component_spec_name"] = name
|
||||
configs["android_package_name"] = android_package_name
|
||||
|
||||
js_srcs_dir = package_codegen_config["jsSrcsDir"]
|
||||
configs["codegen_src_prefix"] = (js_srcs_dir + "/") if js_srcs_dir else ""
|
||||
|
||||
return configs
|
||||
|
||||
Reference in New Issue
Block a user