diff --git a/React/CoreModules/RCTDevSettings.h b/React/CoreModules/RCTDevSettings.h index c3fea34a665..45bb74a5c58 100644 --- a/React/CoreModules/RCTDevSettings.h +++ b/React/CoreModules/RCTDevSettings.h @@ -30,6 +30,16 @@ @end +@protocol RCTDevSettingsInspectable + +/** + * Whether current jsi::Runtime is inspectable. + * Only set when using as a bridgeless turbo module. + */ +@property (nonatomic, assign, readwrite) BOOL isInspectable; + +@end + @interface RCTDevSettings : RCTEventEmitter - (instancetype)initWithDataSource:(id)dataSource; diff --git a/React/CoreModules/RCTDevSettings.mm b/React/CoreModules/RCTDevSettings.mm index 05ce7049d12..cc8f740cce7 100644 --- a/React/CoreModules/RCTDevSettings.mm +++ b/React/CoreModules/RCTDevSettings.mm @@ -114,7 +114,12 @@ void RCTDevSettingsSetEnabled(BOOL enabled) @end -@interface RCTDevSettings () { +@interface RCTDevSettings () < + RCTBridgeModule, + RCTInvalidating, + NativeDevSettingsSpec, + RCTBundleHolderModule, + RCTDevSettingsInspectable> { BOOL _isJSLoaded; #if ENABLE_PACKAGER_CONNECTION RCTHandlerToken _reloadToken; @@ -129,6 +134,7 @@ void RCTDevSettingsSetEnabled(BOOL enabled) @implementation RCTDevSettings @synthesize bundleURL = _bundleURL; +@synthesize isInspectable = _isInspectable; RCT_EXPORT_MODULE() @@ -242,7 +248,11 @@ RCT_EXPORT_MODULE() - (BOOL)isDeviceDebuggingAvailable { #if RCT_ENABLE_INSPECTOR - return self.bridge.isInspectable; + if (self.bridge) { + return self.bridge.isInspectable; + } else { + return self.isInspectable; + } #else return false; #endif // RCT_ENABLE_INSPECTOR