Decouple Metro device handling from Flipper core

Summary: Decoupled metro 'device' from Redux store. Extracting some commonalities with Android device management up into FlipperServer

Reviewed By: timur-valiev

Differential Revision: D30309256

fbshipit-source-id: 1a9ac01e3f21d2d08761554d3644a7ae8d00a93e
This commit is contained in:
Michel Weststrate
2021-08-17 04:43:18 -07:00
committed by Facebook GitHub Bot
parent 03f2f95a31
commit 4ae7d9c42b
6 changed files with 152 additions and 58 deletions

View File

@@ -17,7 +17,7 @@ import {notification} from 'antd';
export default async (store: Store, logger: Logger) => {
const {enableAndroid, androidHome} = store.getState().settingsState;
const server = await startFlipperServer(
const server = startFlipperServer(
{
enableAndroid,
androidHome,
@@ -40,7 +40,7 @@ export default async (store: Store, logger: Logger) => {
});
});
server.on('server-start-error', (err) => {
server.on('server-error', (err) => {
notification.error({
message: 'Failed to start connection server',
description:
@@ -58,7 +58,7 @@ export default async (store: Store, logger: Logger) => {
{'' + err}
</>
) : (
<>Failed to start connection server: ${err.message}</>
<>Failed to start Flipper server: ${err.message}</>
),
duration: null,
});
@@ -87,7 +87,7 @@ export default async (store: Store, logger: Logger) => {
os: device.os,
serial: device.serial,
});
// N.B.: note that we don't remove the device, we keep it in offline mode!
// N.B.: note that we don't remove the device, we keep it in offline
});
server.on('client-connected', (payload) =>
@@ -100,6 +100,21 @@ export default async (store: Store, logger: Logger) => {
});
}
server
.waitForServerStarted()
.then(() => {
console.log(
'Flipper server started and accepting device / client connections',
);
})
.catch((e) => {
console.error('Failed to start Flipper server', e);
notification.error({
message: 'Failed to start Flipper server',
description: 'error: ' + e,
});
});
return () => {
server.close();
};