Skip to content

Commit

Permalink
Remove TurboModuleManager from ReactHostDelegate
Browse files Browse the repository at this point in the history
Summary:
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

changelog: [internal] internal

Differential Revision: D49483636

fbshipit-source-id: 845cc8c78130aef8b5c58e28983b7de5f145bdcc
  • Loading branch information
mdvacca authored and facebook-github-bot committed Oct 1, 2023
1 parent 5d386b7 commit 36926fb
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 @@ -30,7 +30,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 @@ -58,7 +57,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 36926fb

Please sign in to comment.