105 lines
2.8 KiB
Objective-C
105 lines
2.8 KiB
Objective-C
/**
|
|
* Copyright (c) 2015-present, Facebook, Inc.
|
|
*
|
|
* This source code is licensed under the MIT license found in the
|
|
* LICENSE file in the root directory of this source tree.
|
|
*/
|
|
|
|
#import <React/RCTBridge.h>
|
|
#import <React/RCTDefines.h>
|
|
|
|
@protocol RCTPackagerClientMethod;
|
|
|
|
/**
|
|
* An abstraction for a key-value store to manage RCTDevSettings behavior.
|
|
* The default implementation persists settings using NSUserDefaults.
|
|
*/
|
|
@protocol RCTDevSettingsDataSource <NSObject>
|
|
|
|
/**
|
|
* Updates the setting with the given key to the given value.
|
|
* How the data source's state changes depends on the implementation.
|
|
*/
|
|
- (void)updateSettingWithValue:(id)value forKey:(NSString *)key;
|
|
|
|
/**
|
|
* Returns the value for the setting with the given key.
|
|
*/
|
|
- (id)settingForKey:(NSString *)key;
|
|
|
|
@end
|
|
|
|
@interface RCTDevSettings : NSObject
|
|
|
|
- (instancetype)initWithDataSource:(id<RCTDevSettingsDataSource>)dataSource;
|
|
|
|
@property (nonatomic, readonly) BOOL isHotLoadingAvailable;
|
|
@property (nonatomic, readonly) BOOL isLiveReloadAvailable;
|
|
@property (nonatomic, readonly) BOOL isRemoteDebuggingAvailable;
|
|
@property (nonatomic, readonly) BOOL isNuclideDebuggingAvailable;
|
|
@property (nonatomic, readonly) BOOL isJSCSamplingProfilerAvailable;
|
|
|
|
/**
|
|
* Whether the bridge is connected to a remote JS executor.
|
|
*/
|
|
@property (nonatomic, assign) BOOL isDebuggingRemotely;
|
|
|
|
/*
|
|
* Whether shaking will show RCTDevMenu. The menu is enabled by default if RCT_DEV=1, but
|
|
* you may wish to disable it so that you can provide your own shake handler.
|
|
*/
|
|
@property (nonatomic, assign) BOOL isShakeToShowDevMenuEnabled;
|
|
|
|
/**
|
|
* Whether performance profiling is enabled.
|
|
*/
|
|
@property (nonatomic, assign, setter=setProfilingEnabled:) BOOL isProfilingEnabled;
|
|
|
|
/**
|
|
* Whether automatic polling for JS code changes is enabled. Only applicable when
|
|
* running the app from a server.
|
|
*/
|
|
@property (nonatomic, assign, setter=setLiveReloadEnabled:) BOOL isLiveReloadEnabled;
|
|
|
|
/**
|
|
* Whether hot loading is enabled.
|
|
*/
|
|
@property (nonatomic, assign, setter=setHotLoadingEnabled:) BOOL isHotLoadingEnabled;
|
|
|
|
/**
|
|
* Toggle the element inspector.
|
|
*/
|
|
- (void)toggleElementInspector;
|
|
|
|
/**
|
|
* Toggle JSC's sampling profiler.
|
|
*/
|
|
- (void)toggleJSCSamplingProfiler;
|
|
|
|
/**
|
|
* Enables starting of profiling sampler on launch
|
|
*/
|
|
@property (nonatomic, assign) BOOL startSamplingProfilerOnLaunch;
|
|
|
|
/**
|
|
* Whether the element inspector is visible.
|
|
*/
|
|
@property (nonatomic, readonly) BOOL isElementInspectorShown;
|
|
|
|
/**
|
|
* Whether the performance monitor is visible.
|
|
*/
|
|
@property (nonatomic, assign) BOOL isPerfMonitorShown;
|
|
|
|
#if RCT_DEV
|
|
- (void)addHandler:(id<RCTPackagerClientMethod>)handler forPackagerMethod:(NSString *)name __deprecated_msg("Use RCTPackagerConnection directly instead");
|
|
#endif
|
|
|
|
@end
|
|
|
|
@interface RCTBridge (RCTDevSettings)
|
|
|
|
@property (nonatomic, readonly) RCTDevSettings *devSettings;
|
|
|
|
@end
|