Add a way to selectively enable TurboModules

Summary:
Added a flag that checks if TurboModules are enabled, don't expose them to JS via the old module system.
All TurboModules needs to implement TurboModule interface.

Reviewed By: mdvacca

Differential Revision: D13648332

fbshipit-source-id: f22506fe029ac82d56075f5b6962ff2df2e7eaa4
This commit is contained in:
Ram N
2019-01-16 19:19:53 -08:00
committed by Facebook Github Bot
parent c93edb5ffd
commit aa19fa02e9
8 changed files with 58 additions and 4 deletions
@@ -15,6 +15,7 @@ import com.facebook.debug.tags.ReactDebugOverlayTags;
import com.facebook.infer.annotation.Assertions;
import com.facebook.proguard.annotations.DoNotStrip;
import com.facebook.react.module.model.ReactModuleInfo;
import com.facebook.react.turbomodule.core.interfaces.TurboModule;
import com.facebook.systrace.SystraceMessage;
import java.util.concurrent.atomic.AtomicInteger;
import javax.annotation.Nullable;
@@ -68,7 +69,9 @@ public class ModuleHolder {
nativeModule.canOverrideExistingModule(),
true,
true,
CxxModuleWrapper.class.isAssignableFrom(nativeModule.getClass()));
CxxModuleWrapper.class.isAssignableFrom(nativeModule.getClass()),
TurboModule.class.isAssignableFrom(nativeModule.getClass())
);
mModule = nativeModule;
PrinterHolder.getPrinter()
@@ -119,6 +122,10 @@ public class ModuleHolder {
return mReactModuleInfo.hasConstants();
}
public boolean isTurboModule() {
return mReactModuleInfo.isTurboModule();
}
public boolean isCxxModule() {
return mReactModuleInfo.isCxxModule();
}