Restructure iOS dispatcher initialization

Summary:
Avoid nested promises and log errors during initialization that were
previously thrown away.

Reviewed By: mweststrate

Differential Revision: D30247859

fbshipit-source-id: 1d9ef871d1861a25a64ed4e895978b04f5b51c7b
This commit is contained in:
Pascal Hartig
2021-08-11 11:02:10 -07:00
committed by Facebook GitHub Bot
parent cf3ab869f8
commit f515df1c01

View File

@@ -310,14 +310,27 @@ export default (store: Store, logger: Logger) => {
if (!store.getState().settingsState.enableIOS) {
return;
}
iosUtil.isXcodeDetected().then((isDetected) => {
store.dispatch(setXcodeDetected(isDetected));
if (store.getState().settingsState.enablePhysicalIOS) {
startDevicePortForwarders();
}
return makeIOSBridge(
store.getState().settingsState.idbPath,
isDetected,
).then((iosBridge) => queryDevicesForever(store, logger, iosBridge));
});
iosUtil
.isXcodeDetected()
.then(
(isDetected) => {
store.dispatch(setXcodeDetected(isDetected));
if (store.getState().settingsState.enablePhysicalIOS) {
startDevicePortForwarders();
}
return makeIOSBridge(
store.getState().settingsState.idbPath,
isDetected,
);
},
(err) => {
console.error('Failed to initialize iOS dispatcher:', err);
},
)
.then(
(iosBridge) => iosBridge && queryDevicesForever(store, logger, iosBridge),
)
.catch((err) => {
console.error('Error while querying iOS devices:', err);
});
};