1 // Copyright 2015-present 650 Industries. All rights reserved.
2 
3 
4 import Foundation
5 
6 class EXDevMenuDevSettings: NSObject {
7 
getDevSettingsnull8   public static func getDevSettings() -> [String: Bool] {
9     var devSettings: [String: Bool] = [:];
10 
11     devSettings["isDebuggingRemotely"] = false
12     devSettings["isElementInspectorShown"] = false;
13     devSettings["isHotLoadingEnabled"] = false;
14     devSettings["isPerfMonitorShown"] = false;
15 
16     devSettings["isRemoteDebuggingAvailable"] = false;
17     devSettings["isElementInspectorAvailable"] = false;
18     devSettings["isHotLoadingAvailable"] = false;
19     devSettings["isPerfMonitorAvailable"] = false;
20     devSettings["isJSInspectorAvailable"] = false
21 
22     let manager = DevMenuManager.shared
23 
24     if let bridge = manager.currentBridge,
25         let bridgeSettings = bridge.module(forName: "DevSettings") as? RCTDevSettings {
26 
27 
28       let perfMonitor = bridge.module(forName: "PerfMonitor")
29       let isPerfMonitorAvailable = perfMonitor != nil
30 
31       devSettings["isDebuggingRemotely"] = bridgeSettings.isDebuggingRemotely;
32       devSettings["isElementInspectorShown"] = bridgeSettings.isElementInspectorShown;
33       devSettings["isHotLoadingEnabled"] = bridgeSettings.isHotLoadingEnabled;
34       devSettings["isPerfMonitorShown"] = bridgeSettings.isPerfMonitorShown;
35       devSettings["isRemoteDebuggingAvailable"] = bridgeSettings.isRemoteDebuggingAvailable
36       devSettings["isHotLoadingAvailable"] = bridgeSettings.isHotLoadingAvailable
37       devSettings["isPerfMonitorAvailable"] = isPerfMonitorAvailable
38       devSettings["isJSInspectorAvailable"] = bridge.batched.isInspectable
39 
40       let isElementInspectorAvailable = manager.currentManifest?.isDevelopmentMode()
41       devSettings["isElementInspectorAvailable"] = isElementInspectorAvailable
42     }
43 
44     return devSettings
45   }
46 
47 }
48