1 // Copyright 2015-present 650 Industries. All rights reserved.
2 
3 
4 import Foundation
5 
6 class EXDevMenuDevSettings: NSObject {
7 
8   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 
21     let manager = DevMenuManager.shared
22 
23     if let bridge = manager.currentBridge,
24         let bridgeSettings = bridge.module(forName: "DevSettings") as? RCTDevSettings {
25 
26 
27       let perfMonitor = bridge.module(forName: "PerfMonitor")
28       let isPerfMonitorAvailable = perfMonitor != nil
29 
30       devSettings["isDebuggingRemotely"] = bridgeSettings.isDebuggingRemotely;
31       devSettings["isElementInspectorShown"] = bridgeSettings.isElementInspectorShown;
32       devSettings["isHotLoadingEnabled"] = bridgeSettings.isHotLoadingEnabled;
33       devSettings["isPerfMonitorShown"] = bridgeSettings.isPerfMonitorShown;
34       devSettings["isRemoteDebuggingAvailable"] = bridgeSettings.isRemoteDebuggingAvailable
35       devSettings["isHotLoadingAvailable"] = bridgeSettings.isHotLoadingAvailable
36       devSettings["isPerfMonitorAvailable"] = isPerfMonitorAvailable
37 
38       let isElementInspectorAvailable = manager.currentManifest?.isDevelopmentMode()
39       devSettings["isElementInspectorAvailable"] = isElementInspectorAvailable
40     }
41 
42     return devSettings
43   }
44 
45 }
46