Skip to content

Commit

Permalink
Remove TurboModuleManager from ReactHostDelegate (#39613)
Browse files Browse the repository at this point in the history
Summary:
Pull Request resolved: #39613

In this diff I'm removing TurboModuleManager from ReactHostDelegate. The goal is to stop exposing TurboModuleManager and TurboModuleRegistry
Developers should use ReactContext.getNativeModule to retrieve native modules instead of TurboModuleManager or TurboModuleRegistry

bypass-github-export-checks

changelog: [internal] internal

Reviewed By: cortinico

Differential Revision: D49483636

fbshipit-source-id: 6c2e29d83700bebf05475875edad6d5c0877d9df
  • Loading branch information
mdvacca authored and facebook-github-bot committed Oct 6, 2023
1 parent f402312 commit 6355703
Show file tree
Hide file tree
Showing 4 changed files with 13 additions and 8 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -11,13 +11,13 @@ import com.facebook.jni.annotations.DoNotStrip
import com.facebook.react.ReactPackage
import com.facebook.react.ReactPackageTurboModuleManagerDelegate
import com.facebook.react.bridge.JSBundleLoader
import com.facebook.react.bridge.NativeModule
import com.facebook.react.common.annotations.UnstableReactNativeAPI
import com.facebook.react.fabric.ReactNativeConfig
import com.facebook.react.runtime.BindingsInstaller
import com.facebook.react.runtime.JSEngineInstance
import com.facebook.react.runtime.ReactHostDelegate
import com.facebook.react.runtime.hermes.HermesInstance
import com.facebook.react.turbomodule.core.TurboModuleManager

/**
* A utility class that allows you to simplify the initialization of React Native by setting up a
Expand Down Expand Up @@ -50,7 +50,7 @@ class DefaultReactHostDelegate(
override val turboModuleManagerDelegateBuilder: ReactPackageTurboModuleManagerDelegate.Builder
) : ReactHostDelegate {

override fun getReactNativeConfig(turboModuleManager: TurboModuleManager) = reactNativeConfig
override fun getReactNativeConfig(moduleProvider: (String) -> NativeModule?) = reactNativeConfig

override fun handleInstanceException(error: Exception) = exceptionHandler(error)
}
Original file line number Diff line number Diff line change
Expand Up @@ -11,9 +11,9 @@ import com.facebook.infer.annotation.ThreadSafe
import com.facebook.react.ReactPackage
import com.facebook.react.ReactPackageTurboModuleManagerDelegate
import com.facebook.react.bridge.JSBundleLoader
import com.facebook.react.bridge.NativeModule
import com.facebook.react.common.annotations.UnstableReactNativeAPI
import com.facebook.react.fabric.ReactNativeConfig
import com.facebook.react.turbomodule.core.TurboModuleManager

/**
* [ReactHostDelegate] is an interface that defines parameters required to initialize React Native.
Expand Down Expand Up @@ -59,8 +59,11 @@ interface ReactHostDelegate {
/**
* ReactNative Configuration that allows to customize the behavior of key/value pairs used by the
* framework to enable/disable experimental capabilities
*
* [moduleProvider] is a function that returns the Native Module with the name received as a
* parameter.
*/
fun getReactNativeConfig(turboModuleManager: TurboModuleManager): ReactNativeConfig
fun getReactNativeConfig(moduleProvider: (String) -> NativeModule?): ReactNativeConfig

@UnstableReactNativeAPI
class ReactHostDelegateBase(
Expand All @@ -75,7 +78,7 @@ interface ReactHostDelegate {
private val exceptionHandler: (error: Exception) -> Unit = {}
) : ReactHostDelegate {

override fun getReactNativeConfig(turboModuleManager: TurboModuleManager) = reactNativeConfig
override fun getReactNativeConfig(moduleProvider: (String) -> NativeModule?) = reactNativeConfig

override fun handleInstanceException(error: Exception) = exceptionHandler(error)
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -72,6 +72,7 @@
import java.util.Map;
import java.util.Set;
import javax.annotation.Nullable;
import kotlin.jvm.functions.Function1;

/**
* An experimental replacement for {@link com.facebook.react.ReactInstanceManager} responsible for
Expand Down Expand Up @@ -272,7 +273,9 @@ public Collection<String> getViewManagerNames() {
mFabricUIManager =
new FabricUIManager(mBridgelessReactContext, viewManagerRegistry, eventBeatManager);

ReactNativeConfig config = mDelegate.getReactNativeConfig(mTurboModuleManager);
ReactNativeConfig config =
mDelegate.getReactNativeConfig(
(Function1<String, NativeModule>) name -> mTurboModuleManager.getModule(name));

// Misc initialization that needs to be done before Fabric init
DisplayMetricsHolder.initDisplayMetricsIfNotInitialized(mBridgelessReactContext);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,6 @@ import com.facebook.react.runtime.ReactHostDelegate
import com.facebook.react.runtime.ReactHostImpl
import com.facebook.react.runtime.hermes.HermesInstance
import com.facebook.react.shell.MainReactPackage
import com.facebook.react.turbomodule.core.TurboModuleManager
import com.facebook.react.uiapp.component.MyLegacyViewManager
import com.facebook.react.uiapp.component.MyNativeViewManager
import com.facebook.react.uimanager.ViewManager
Expand Down Expand Up @@ -59,7 +58,7 @@ class RNTesterReactHostDelegate internal constructor(context: Context) : ReactHo

override fun handleInstanceException(error: Exception) {}

override fun getReactNativeConfig(turboModuleManager: TurboModuleManager): ReactNativeConfig =
override fun getReactNativeConfig(moduleProvider: (String) -> NativeModule?): ReactNativeConfig =
ReactNativeConfig.DEFAULT_CONFIG

override val reactPackages: List<ReactPackage> by lazy {
Expand Down

0 comments on commit 6355703

Please sign in to comment.