From c0cd32564ad4b07a42365af886045095877a6a6b Mon Sep 17 00:00:00 2001 From: Michel Weststrate Date: Fri, 13 Aug 2021 04:01:06 -0700 Subject: [PATCH] Organise files per device Summary: Moved all logic per device type we support to its own dir, including tools and utilities around it, which makes it easier to consolidate logic and decouple in turn per device type. Per type, all logic can be found in `server/devices/(desktop|metro|android|ios|webapp)` Reviewed By: timur-valiev Differential Revision: D30277817 fbshipit-source-id: 2b5339c363d5d31ceeba07cec03826fc67cf3748 --- .../src/chrome/JSEmulatorLauncherSheet.tsx | 2 +- desktop/app/src/chrome/MetroButton.tsx | 4 +++- desktop/app/src/dispatcher/reactNative.tsx | 2 +- desktop/app/src/index.tsx | 8 ++++---- .../reducers/__tests__/connections.node.tsx | 7 ++----- desktop/app/src/reducers/connections.tsx | 4 ++-- .../appinspect/LaunchEmulator.tsx | 4 ++-- .../sandy-chrome/appinspect/PluginList.tsx | 2 +- .../__tests__/LaunchEmulator.spec.tsx | 4 ++-- .../appinspect/__tests__/PluginList.spec.tsx | 4 ++-- desktop/app/src/selectors/connections.tsx | 2 +- desktop/app/src/server/FlipperServer.tsx | 8 ++++---- .../app/src/server/comms/ServerController.tsx | 4 ++-- .../devices/{ => android}/AndroidDevice.tsx | 2 +- .../devices/{ => android}/KaiOSDevice.tsx | 0 .../android}/__tests__/adbConfig.node.tsx | 0 .../{utils => devices/android}/adbClient.tsx | 4 ++-- .../{utils => devices/android}/adbConfig.tsx | 2 +- .../android}/androidContainerUtility.tsx | 0 .../androidContainerUtilityInternal.tsx | 2 +- .../android/androidDeviceManager.tsx} | 18 +++++++++--------- .../devices/{ => desktop}/MacDevice.tsx | 2 +- .../devices/{ => desktop}/WindowsDevice.tsx | 2 +- .../desktop/desktopDeviceManager.tsx} | 6 +++--- .../{utils => devices/ios}/IOSBridge.tsx | 2 +- .../server/devices/{ => ios}/IOSDevice.tsx | 7 ++----- .../ios}/__tests__/IOSBridge.node.tsx | 0 .../__tests__/iOSContainerUtility.node.tsx | 0 .../ios}/__tests__/iOSDevice.node.tsx | 8 ++++---- .../{ => ios}/__tests__/iOSLogs.node.tsx | Bin .../ios}/iOSContainerUtility.tsx | 8 ++++---- .../ios/iOSDeviceManager.tsx} | 18 +++++++++--------- .../devices/{ => metro}/MetroDevice.tsx | 2 +- .../metro/metroDeviceManager.tsx} | 12 ++++++------ .../server/devices/{ => webapp}/JSDevice.tsx | 2 +- .../webapp/jsServerUtils.tsx} | 2 +- .../src/server/utils/CertificateProvider.tsx | 6 +++--- 37 files changed, 78 insertions(+), 82 deletions(-) rename desktop/app/src/server/devices/{ => android}/AndroidDevice.tsx (99%) rename desktop/app/src/server/devices/{ => android}/KaiOSDevice.tsx (100%) rename desktop/app/src/server/{utils => devices/android}/__tests__/adbConfig.node.tsx (100%) rename desktop/app/src/server/{utils => devices/android}/adbClient.tsx (95%) rename desktop/app/src/server/{utils => devices/android}/adbConfig.tsx (88%) rename desktop/app/src/server/{utils => devices/android}/androidContainerUtility.tsx (100%) rename desktop/app/src/server/{utils => devices/android}/androidContainerUtilityInternal.tsx (98%) rename desktop/app/src/server/{androidDevice.tsx => devices/android/androidDeviceManager.tsx} (94%) rename desktop/app/src/server/devices/{ => desktop}/MacDevice.tsx (90%) rename desktop/app/src/server/devices/{ => desktop}/WindowsDevice.tsx (90%) rename desktop/app/src/server/{desktopDevice.tsx => devices/desktop/desktopDeviceManager.tsx} (75%) rename desktop/app/src/server/{utils => devices/ios}/IOSBridge.tsx (98%) rename desktop/app/src/server/devices/{ => ios}/IOSDevice.tsx (98%) rename desktop/app/src/server/{utils => devices/ios}/__tests__/IOSBridge.node.tsx (100%) rename desktop/app/src/server/{utils => devices/ios}/__tests__/iOSContainerUtility.node.tsx (100%) rename desktop/app/src/server/{ => devices/ios}/__tests__/iOSDevice.node.tsx (94%) rename desktop/app/src/server/devices/{ => ios}/__tests__/iOSLogs.node.tsx (100%) rename desktop/app/src/server/{utils => devices/ios}/iOSContainerUtility.tsx (97%) rename desktop/app/src/server/{iOSDevice.tsx => devices/ios/iOSDeviceManager.tsx} (95%) rename desktop/app/src/server/devices/{ => metro}/MetroDevice.tsx (99%) rename desktop/app/src/server/{metroDevice.tsx => devices/metro/metroDeviceManager.tsx} (91%) rename desktop/app/src/server/devices/{ => webapp}/JSDevice.tsx (91%) rename desktop/app/src/server/{utils/js-client-server-utils/serverUtils.tsx => devices/webapp/jsServerUtils.tsx} (99%) diff --git a/desktop/app/src/chrome/JSEmulatorLauncherSheet.tsx b/desktop/app/src/chrome/JSEmulatorLauncherSheet.tsx index 7a2bec80f..a2a64485e 100644 --- a/desktop/app/src/chrome/JSEmulatorLauncherSheet.tsx +++ b/desktop/app/src/chrome/JSEmulatorLauncherSheet.tsx @@ -11,7 +11,7 @@ import {Button} from '../ui'; import React, {Component} from 'react'; import {connect} from 'react-redux'; import {State as Store} from '../reducers'; -import {launchJsEmulator} from '../server/utils/js-client-server-utils/serverUtils'; +import {launchJsEmulator} from '../server/devices/webapp/jsServerUtils'; import {updateSettings, Action} from '../reducers/settings'; import {Settings} from '../reducers/settings'; import {Collapse, Form, Input as AntInput} from 'antd'; diff --git a/desktop/app/src/chrome/MetroButton.tsx b/desktop/app/src/chrome/MetroButton.tsx index 03b121fd4..a37284e6d 100644 --- a/desktop/app/src/chrome/MetroButton.tsx +++ b/desktop/app/src/chrome/MetroButton.tsx @@ -8,7 +8,9 @@ */ import React, {useCallback, useEffect, useState} from 'react'; -import MetroDevice, {MetroReportableEvent} from '../server/devices/MetroDevice'; +import MetroDevice, { + MetroReportableEvent, +} from '../server/devices/metro/MetroDevice'; import {useStore} from '../utils/useStore'; import {Button as AntButton} from 'antd'; import {MenuOutlined, ReloadOutlined} from '@ant-design/icons'; diff --git a/desktop/app/src/dispatcher/reactNative.tsx b/desktop/app/src/dispatcher/reactNative.tsx index 2e6e37bea..c1194eb93 100644 --- a/desktop/app/src/dispatcher/reactNative.tsx +++ b/desktop/app/src/dispatcher/reactNative.tsx @@ -8,7 +8,7 @@ */ import {remote} from 'electron'; -import MetroDevice from '../server/devices/MetroDevice'; +import MetroDevice from '../server/devices/metro/MetroDevice'; import {Store} from '../reducers'; type ShortcutEventCommand = diff --git a/desktop/app/src/index.tsx b/desktop/app/src/index.tsx index ed2da4a5a..ce86c5ede 100644 --- a/desktop/app/src/index.tsx +++ b/desktop/app/src/index.tsx @@ -38,10 +38,10 @@ export {default as BaseDevice} from './server/devices/BaseDevice'; export {default as isProduction} from './utils/isProduction'; export {DetailSidebar} from 'flipper-plugin'; export {default as Device} from './server/devices/BaseDevice'; -export {default as AndroidDevice} from './server/devices/AndroidDevice'; +export {default as AndroidDevice} from './server/devices/android/AndroidDevice'; export {default as ArchivedDevice} from './server/devices/ArchivedDevice'; -export {default as IOSDevice} from './server/devices/IOSDevice'; -export {default as KaiOSDevice} from './server/devices/KaiOSDevice'; +export {default as IOSDevice} from './server/devices/ios/IOSDevice'; +export {default as KaiOSDevice} from './server/devices/android/KaiOSDevice'; export {OS} from './server/devices/BaseDevice'; export {default as Button} from './ui/components/Button'; export {default as ToggleButton} from './ui/components/ToggleSwitch'; @@ -129,7 +129,7 @@ export {Rect} from './utils/geometry'; export {Logger} from './fb-interfaces/Logger'; export {getInstance as getLogger} from './fb-stubs/Logger'; export {callVSCode} from './utils/vscodeUtils'; -export {checkIdbIsInstalled} from './server/utils/iOSContainerUtility'; +export {checkIdbIsInstalled} from './server/devices/ios/iOSContainerUtility'; export {IDEFileResolver, IDEType} from './fb-stubs/IDEFileResolver'; export {renderMockFlipperWithPlugin} from './test-utils/createMockFlipperWithPlugin'; export {Tracked} from 'flipper-plugin'; // To be able to use it in legacy plugins diff --git a/desktop/app/src/reducers/__tests__/connections.node.tsx b/desktop/app/src/reducers/__tests__/connections.node.tsx index bb4b9a39f..8495e382a 100644 --- a/desktop/app/src/reducers/__tests__/connections.node.tsx +++ b/desktop/app/src/reducers/__tests__/connections.node.tsx @@ -10,11 +10,8 @@ import reducer from '../connections'; import {State, selectPlugin} from '../connections'; import BaseDevice from '../../server/devices/BaseDevice'; -import MacDevice from '../../server/devices/MacDevice'; -import {FlipperDevicePlugin} from '../../plugin'; -import MetroDevice from '../../server/devices/MetroDevice'; -import {TestUtils, _setFlipperLibImplementation} from 'flipper-plugin'; -import {wrapSandy} from '../../test-utils/createMockFlipperWithPlugin'; +import MetroDevice from '../../server/devices/metro/MetroDevice'; +import {_setFlipperLibImplementation} from 'flipper-plugin'; import {createMockFlipperLib} from 'flipper-plugin/src/test-utils/test-utils'; beforeEach(() => { diff --git a/desktop/app/src/reducers/connections.tsx b/desktop/app/src/reducers/connections.tsx index d33c331f6..2dc4766a9 100644 --- a/desktop/app/src/reducers/connections.tsx +++ b/desktop/app/src/reducers/connections.tsx @@ -11,7 +11,7 @@ import {ComponentType} from 'react'; import {produce} from 'immer'; import type BaseDevice from '../server/devices/BaseDevice'; -import MacDevice from '../server/devices/MacDevice'; +import MacDevice from '../server/devices/desktop/MacDevice'; import type Client from '../Client'; import type {UninitializedClient} from '../UninitializedClient'; import {isEqual} from 'lodash'; @@ -23,7 +23,7 @@ import {getPluginKey} from '../utils/pluginKey'; import {deconstructClientId} from '../utils/clientUtils'; import type {RegisterPluginAction} from './plugins'; -import MetroDevice from '../server/devices/MetroDevice'; +import MetroDevice from '../server/devices/metro/MetroDevice'; import {Logger} from 'flipper-plugin'; export type StaticViewProps = {logger: Logger}; diff --git a/desktop/app/src/sandy-chrome/appinspect/LaunchEmulator.tsx b/desktop/app/src/sandy-chrome/appinspect/LaunchEmulator.tsx index a824685f6..2690d9442 100644 --- a/desktop/app/src/sandy-chrome/appinspect/LaunchEmulator.tsx +++ b/desktop/app/src/sandy-chrome/appinspect/LaunchEmulator.tsx @@ -17,14 +17,14 @@ import { } from '@ant-design/icons'; import {Store} from '../../reducers'; import {useStore} from '../../utils/useStore'; -import {launchEmulator} from '../../server/devices/AndroidDevice'; +import {launchEmulator} from '../../server/devices/android/AndroidDevice'; import {Layout, renderReactRoot, withTrackingScope} from 'flipper-plugin'; import {Provider} from 'react-redux'; import { launchSimulator, getSimulators, IOSDeviceParams, -} from '../../server/iOSDevice'; +} from '../../server/devices/ios/iOSDeviceManager'; import GK from '../../fb-stubs/GK'; import {JSEmulatorLauncherSheetSandy} from '../../chrome/JSEmulatorLauncherSheet'; diff --git a/desktop/app/src/sandy-chrome/appinspect/PluginList.tsx b/desktop/app/src/sandy-chrome/appinspect/PluginList.tsx index 2bbef77bf..21cc693ec 100644 --- a/desktop/app/src/sandy-chrome/appinspect/PluginList.tsx +++ b/desktop/app/src/sandy-chrome/appinspect/PluginList.tsx @@ -25,7 +25,7 @@ import {selectPlugin} from '../../reducers/connections'; import Client from '../../Client'; import BaseDevice from '../../server/devices/BaseDevice'; import {DownloadablePluginDetails} from 'flipper-plugin-lib'; -import MetroDevice from '../../server/devices/MetroDevice'; +import MetroDevice from '../../server/devices/metro/MetroDevice'; import { DownloadablePluginState, PluginDownloadStatus, diff --git a/desktop/app/src/sandy-chrome/appinspect/__tests__/LaunchEmulator.spec.tsx b/desktop/app/src/sandy-chrome/appinspect/__tests__/LaunchEmulator.spec.tsx index 35e520d90..beec30bfc 100644 --- a/desktop/app/src/sandy-chrome/appinspect/__tests__/LaunchEmulator.spec.tsx +++ b/desktop/app/src/sandy-chrome/appinspect/__tests__/LaunchEmulator.spec.tsx @@ -17,11 +17,11 @@ import {createRootReducer} from '../../../reducers'; import {act} from 'react-dom/test-utils'; import {sleep} from 'flipper-plugin'; -jest.mock('../../../server/devices/AndroidDevice', () => ({ +jest.mock('../../../server/devices/android/AndroidDevice', () => ({ launchEmulator: jest.fn(() => Promise.resolve([])), })); -import {launchEmulator} from '../../../server/devices/AndroidDevice'; +import {launchEmulator} from '../../../server/devices/android/AndroidDevice'; test('Can render and launch android apps', async () => { const store = createStore(createRootReducer()); diff --git a/desktop/app/src/sandy-chrome/appinspect/__tests__/PluginList.spec.tsx b/desktop/app/src/sandy-chrome/appinspect/__tests__/PluginList.spec.tsx index c3be4421c..7bb58f18d 100644 --- a/desktop/app/src/sandy-chrome/appinspect/__tests__/PluginList.spec.tsx +++ b/desktop/app/src/sandy-chrome/appinspect/__tests__/PluginList.spec.tsx @@ -12,12 +12,12 @@ import { MockFlipperResult, } from '../../../test-utils/createMockFlipperWithPlugin'; import {FlipperPlugin} from '../../../plugin'; -import MetroDevice from '../../../server/devices/MetroDevice'; +import MetroDevice from '../../../server/devices/metro/MetroDevice'; import BaseDevice from '../../../server/devices/BaseDevice'; import {_SandyPluginDefinition} from 'flipper-plugin'; import {TestUtils} from 'flipper-plugin'; import {selectPlugin} from '../../../reducers/connections'; -import {registerMetroDevice} from '../../../server/metroDevice'; +import {registerMetroDevice} from '../../../server/devices/metro/metroDeviceManager'; import { addGatekeepedPlugins, registerMarketplacePlugins, diff --git a/desktop/app/src/selectors/connections.tsx b/desktop/app/src/selectors/connections.tsx index 252dd0a27..c7496d5af 100644 --- a/desktop/app/src/selectors/connections.tsx +++ b/desktop/app/src/selectors/connections.tsx @@ -7,7 +7,7 @@ * @format */ -import MetroDevice from '../server/devices/MetroDevice'; +import MetroDevice from '../server/devices/metro/MetroDevice'; import {State} from '../reducers'; import { computePluginLists, diff --git a/desktop/app/src/server/FlipperServer.tsx b/desktop/app/src/server/FlipperServer.tsx index 850aadb54..0d0190cbd 100644 --- a/desktop/app/src/server/FlipperServer.tsx +++ b/desktop/app/src/server/FlipperServer.tsx @@ -19,10 +19,10 @@ import {isLoggedIn} from '../fb-stubs/user'; import React from 'react'; import {Typography} from 'antd'; import {ACTIVE_SHEET_SIGN_IN, setActiveSheet} from '../reducers/application'; -import androidDevice from './androidDevice'; -import iOSDevice from './iOSDevice'; -import metroDevice from './metroDevice'; -import desktopDevice from './desktopDevice'; +import androidDevice from './devices/android/androidDeviceManager'; +import iOSDevice from './devices/ios/iOSDeviceManager'; +import metroDevice from './devices/metro/metroDeviceManager'; +import desktopDevice from './devices/desktop/desktopDeviceManager'; import BaseDevice from './devices/BaseDevice'; type FlipperServerEvents = { diff --git a/desktop/app/src/server/comms/ServerController.tsx b/desktop/app/src/server/comms/ServerController.tsx index aee6099ed..b32b60a04 100644 --- a/desktop/app/src/server/comms/ServerController.tsx +++ b/desktop/app/src/server/comms/ServerController.tsx @@ -19,9 +19,9 @@ import {reportPlatformFailures} from '../../utils/metrics'; import {EventEmitter} from 'events'; import invariant from 'invariant'; import GK from '../../fb-stubs/GK'; -import {initJsEmulatorIPC} from '../utils/js-client-server-utils/serverUtils'; +import {initJsEmulatorIPC} from '../devices/webapp/jsServerUtils'; import {buildClientId} from '../../utils/clientUtils'; -import JSDevice from '../../server/devices/JSDevice'; +import JSDevice from '../devices/webapp/JSDevice'; import DummyDevice from '../../server/devices/DummyDevice'; import BaseDevice from '../../server/devices/BaseDevice'; import {sideEffect} from '../../utils/sideEffect'; diff --git a/desktop/app/src/server/devices/AndroidDevice.tsx b/desktop/app/src/server/devices/android/AndroidDevice.tsx similarity index 99% rename from desktop/app/src/server/devices/AndroidDevice.tsx rename to desktop/app/src/server/devices/android/AndroidDevice.tsx index 3f3823d17..07929b359 100644 --- a/desktop/app/src/server/devices/AndroidDevice.tsx +++ b/desktop/app/src/server/devices/android/AndroidDevice.tsx @@ -7,7 +7,7 @@ * @format */ -import BaseDevice from './BaseDevice'; +import BaseDevice from '../BaseDevice'; import adb, {Client as ADBClient} from 'adbkit'; import {Priority, Reader} from 'adbkit-logcat'; import {createWriteStream} from 'fs'; diff --git a/desktop/app/src/server/devices/KaiOSDevice.tsx b/desktop/app/src/server/devices/android/KaiOSDevice.tsx similarity index 100% rename from desktop/app/src/server/devices/KaiOSDevice.tsx rename to desktop/app/src/server/devices/android/KaiOSDevice.tsx diff --git a/desktop/app/src/server/utils/__tests__/adbConfig.node.tsx b/desktop/app/src/server/devices/android/__tests__/adbConfig.node.tsx similarity index 100% rename from desktop/app/src/server/utils/__tests__/adbConfig.node.tsx rename to desktop/app/src/server/devices/android/__tests__/adbConfig.node.tsx diff --git a/desktop/app/src/server/utils/adbClient.tsx b/desktop/app/src/server/devices/android/adbClient.tsx similarity index 95% rename from desktop/app/src/server/utils/adbClient.tsx rename to desktop/app/src/server/devices/android/adbClient.tsx index 382b89126..ff0a47115 100644 --- a/desktop/app/src/server/utils/adbClient.tsx +++ b/desktop/app/src/server/devices/android/adbClient.tsx @@ -7,10 +7,10 @@ * @format */ -import {reportPlatformFailures} from '../../utils/metrics'; +import {reportPlatformFailures} from '../../../utils/metrics'; import {execFile} from 'promisify-child-process'; import promiseRetry from 'promise-retry'; -import adbConfig from '../utils/adbConfig'; +import adbConfig from './adbConfig'; import adbkit, {Client} from 'adbkit'; import path from 'path'; diff --git a/desktop/app/src/server/utils/adbConfig.tsx b/desktop/app/src/server/devices/android/adbConfig.tsx similarity index 88% rename from desktop/app/src/server/utils/adbConfig.tsx rename to desktop/app/src/server/devices/android/adbConfig.tsx index c0fe072f0..4007dd6cb 100644 --- a/desktop/app/src/server/utils/adbConfig.tsx +++ b/desktop/app/src/server/devices/android/adbConfig.tsx @@ -7,7 +7,7 @@ * @format */ -import {parseEnvironmentVariableAsNumber} from './environmentVariables'; +import {parseEnvironmentVariableAsNumber} from '../../utils/environmentVariables'; export default () => { let port = parseEnvironmentVariableAsNumber( diff --git a/desktop/app/src/server/utils/androidContainerUtility.tsx b/desktop/app/src/server/devices/android/androidContainerUtility.tsx similarity index 100% rename from desktop/app/src/server/utils/androidContainerUtility.tsx rename to desktop/app/src/server/devices/android/androidContainerUtility.tsx diff --git a/desktop/app/src/server/utils/androidContainerUtilityInternal.tsx b/desktop/app/src/server/devices/android/androidContainerUtilityInternal.tsx similarity index 98% rename from desktop/app/src/server/utils/androidContainerUtilityInternal.tsx rename to desktop/app/src/server/devices/android/androidContainerUtilityInternal.tsx index 93eb2a410..21c9bf859 100644 --- a/desktop/app/src/server/utils/androidContainerUtilityInternal.tsx +++ b/desktop/app/src/server/devices/android/androidContainerUtilityInternal.tsx @@ -12,7 +12,7 @@ * opaque types will ensure the commands are only ever run on validated * arguments. */ -import {UnsupportedError} from '../../utils/metrics'; +import {UnsupportedError} from '../../../utils/metrics'; import adbkit, {Client} from 'adbkit'; const allowedAppNameRegex = /^[\w.-]+$/; diff --git a/desktop/app/src/server/androidDevice.tsx b/desktop/app/src/server/devices/android/androidDeviceManager.tsx similarity index 94% rename from desktop/app/src/server/androidDevice.tsx rename to desktop/app/src/server/devices/android/androidDeviceManager.tsx index 12c6e9b52..a18b9b154 100644 --- a/desktop/app/src/server/androidDevice.tsx +++ b/desktop/app/src/server/devices/android/androidDeviceManager.tsx @@ -7,19 +7,19 @@ * @format */ -import AndroidDevice from '../server/devices/AndroidDevice'; -import KaiOSDevice from '../server/devices/KaiOSDevice'; +import AndroidDevice from './AndroidDevice'; +import KaiOSDevice from './KaiOSDevice'; import child_process from 'child_process'; -import {Store} from '../reducers/index'; -import BaseDevice from '../server/devices/BaseDevice'; -import {Logger} from '../fb-interfaces/Logger'; -import {getAdbClient} from '../server/utils/adbClient'; +import {Store} from '../../../reducers/index'; +import BaseDevice from '../BaseDevice'; +import {Logger} from '../../../fb-interfaces/Logger'; +import {getAdbClient} from './adbClient'; import which from 'which'; import {promisify} from 'util'; -import {ServerPorts} from '../reducers/application'; +import {ServerPorts} from '../../../reducers/application'; import {Client as ADBClient} from 'adbkit'; -import {addErrorNotification} from '../reducers/notifications'; -import {destroyDevice} from '../reducers/connections'; +import {addErrorNotification} from '../../../reducers/notifications'; +import {destroyDevice} from '../../../reducers/connections'; import {join} from 'path'; function createDevice( diff --git a/desktop/app/src/server/devices/MacDevice.tsx b/desktop/app/src/server/devices/desktop/MacDevice.tsx similarity index 90% rename from desktop/app/src/server/devices/MacDevice.tsx rename to desktop/app/src/server/devices/desktop/MacDevice.tsx index 3e3d2a03c..402c1bb45 100644 --- a/desktop/app/src/server/devices/MacDevice.tsx +++ b/desktop/app/src/server/devices/desktop/MacDevice.tsx @@ -7,7 +7,7 @@ * @format */ -import BaseDevice from './BaseDevice'; +import BaseDevice from '../BaseDevice'; export default class MacDevice extends BaseDevice { constructor() { diff --git a/desktop/app/src/server/devices/WindowsDevice.tsx b/desktop/app/src/server/devices/desktop/WindowsDevice.tsx similarity index 90% rename from desktop/app/src/server/devices/WindowsDevice.tsx rename to desktop/app/src/server/devices/desktop/WindowsDevice.tsx index bc441aeab..c3c8e8be8 100644 --- a/desktop/app/src/server/devices/WindowsDevice.tsx +++ b/desktop/app/src/server/devices/desktop/WindowsDevice.tsx @@ -7,7 +7,7 @@ * @format */ -import BaseDevice from './BaseDevice'; +import BaseDevice from '../BaseDevice'; export default class WindowsDevice extends BaseDevice { constructor() { diff --git a/desktop/app/src/server/desktopDevice.tsx b/desktop/app/src/server/devices/desktop/desktopDeviceManager.tsx similarity index 75% rename from desktop/app/src/server/desktopDevice.tsx rename to desktop/app/src/server/devices/desktop/desktopDeviceManager.tsx index cc1bc4e44..8b56b086f 100644 --- a/desktop/app/src/server/desktopDevice.tsx +++ b/desktop/app/src/server/devices/desktop/desktopDeviceManager.tsx @@ -7,9 +7,9 @@ * @format */ -import MacDevice from '../server/devices/MacDevice'; -import WindowsDevice from '../server/devices/WindowsDevice'; -import {FlipperServer} from './FlipperServer'; +import MacDevice from './MacDevice'; +import WindowsDevice from './WindowsDevice'; +import {FlipperServer} from '../../FlipperServer'; export default (flipperServer: FlipperServer) => { let device; diff --git a/desktop/app/src/server/utils/IOSBridge.tsx b/desktop/app/src/server/devices/ios/IOSBridge.tsx similarity index 98% rename from desktop/app/src/server/utils/IOSBridge.tsx rename to desktop/app/src/server/devices/ios/IOSBridge.tsx index 4067f8627..e9b16cb8c 100644 --- a/desktop/app/src/server/utils/IOSBridge.tsx +++ b/desktop/app/src/server/devices/ios/IOSBridge.tsx @@ -13,7 +13,7 @@ import {DeviceType} from 'flipper-plugin-lib'; import {v1 as uuid} from 'uuid'; import path from 'path'; import {exec} from 'promisify-child-process'; -import {getAppTempPath} from '../../utils/pathUtils'; +import {getAppTempPath} from '../../../utils/pathUtils'; export const ERR_NO_IDB_OR_XCODE_AVAILABLE = 'Neither Xcode nor idb available. Cannot provide iOS device functionality.'; diff --git a/desktop/app/src/server/devices/IOSDevice.tsx b/desktop/app/src/server/devices/ios/IOSDevice.tsx similarity index 98% rename from desktop/app/src/server/devices/IOSDevice.tsx rename to desktop/app/src/server/devices/ios/IOSDevice.tsx index 8e3e2d996..cca79b00b 100644 --- a/desktop/app/src/server/devices/IOSDevice.tsx +++ b/desktop/app/src/server/devices/ios/IOSDevice.tsx @@ -9,14 +9,11 @@ import {LogLevel, DeviceLogEntry, DeviceType, timeout} from 'flipper-plugin'; import child_process, {ChildProcess} from 'child_process'; -import BaseDevice from './BaseDevice'; +import BaseDevice from '../BaseDevice'; import JSONStream from 'JSONStream'; import {Transform} from 'stream'; import {exec} from 'promisify-child-process'; -import { - ERR_PHYSICAL_DEVICE_LOGS_WITHOUT_IDB, - IOSBridge, -} from '../utils/IOSBridge'; +import {ERR_PHYSICAL_DEVICE_LOGS_WITHOUT_IDB, IOSBridge} from './IOSBridge'; import split2 from 'split2'; type IOSLogLevel = 'Default' | 'Info' | 'Debug' | 'Error' | 'Fault'; diff --git a/desktop/app/src/server/utils/__tests__/IOSBridge.node.tsx b/desktop/app/src/server/devices/ios/__tests__/IOSBridge.node.tsx similarity index 100% rename from desktop/app/src/server/utils/__tests__/IOSBridge.node.tsx rename to desktop/app/src/server/devices/ios/__tests__/IOSBridge.node.tsx diff --git a/desktop/app/src/server/utils/__tests__/iOSContainerUtility.node.tsx b/desktop/app/src/server/devices/ios/__tests__/iOSContainerUtility.node.tsx similarity index 100% rename from desktop/app/src/server/utils/__tests__/iOSContainerUtility.node.tsx rename to desktop/app/src/server/devices/ios/__tests__/iOSContainerUtility.node.tsx diff --git a/desktop/app/src/server/__tests__/iOSDevice.node.tsx b/desktop/app/src/server/devices/ios/__tests__/iOSDevice.node.tsx similarity index 94% rename from desktop/app/src/server/__tests__/iOSDevice.node.tsx rename to desktop/app/src/server/devices/ios/__tests__/iOSDevice.node.tsx index cf74dc281..66abe6b51 100644 --- a/desktop/app/src/server/__tests__/iOSDevice.node.tsx +++ b/desktop/app/src/server/devices/ios/__tests__/iOSDevice.node.tsx @@ -10,11 +10,11 @@ import { parseXcodeFromCoreSimPath, getAllPromisesForQueryingDevices, -} from '../iOSDevice'; +} from '../iOSDeviceManager'; import configureStore from 'redux-mock-store'; -import {State, createRootReducer} from '../../reducers/index'; -import {getInstance} from '../../fb-stubs/Logger'; -import {IOSBridge} from '../../server/utils/IOSBridge'; +import {State, createRootReducer} from '../../../../reducers/index'; +import {getInstance} from '../../../../fb-stubs/Logger'; +import {IOSBridge} from '../IOSBridge'; const mockStore = configureStore([])( createRootReducer()(undefined, {type: 'INIT'}), diff --git a/desktop/app/src/server/devices/__tests__/iOSLogs.node.tsx b/desktop/app/src/server/devices/ios/__tests__/iOSLogs.node.tsx similarity index 100% rename from desktop/app/src/server/devices/__tests__/iOSLogs.node.tsx rename to desktop/app/src/server/devices/ios/__tests__/iOSLogs.node.tsx diff --git a/desktop/app/src/server/utils/iOSContainerUtility.tsx b/desktop/app/src/server/devices/ios/iOSContainerUtility.tsx similarity index 97% rename from desktop/app/src/server/utils/iOSContainerUtility.tsx rename to desktop/app/src/server/devices/ios/iOSContainerUtility.tsx index d7571cbd8..4c00f69a0 100644 --- a/desktop/app/src/server/utils/iOSContainerUtility.tsx +++ b/desktop/app/src/server/devices/ios/iOSContainerUtility.tsx @@ -10,16 +10,16 @@ import React from 'react'; import {Mutex} from 'async-mutex'; import {exec as unsafeExec, Output} from 'promisify-child-process'; -import {killOrphanedInstrumentsProcesses} from './processCleanup'; -import {reportPlatformFailures} from '../../utils/metrics'; +import {killOrphanedInstrumentsProcesses} from '../../utils/processCleanup'; +import {reportPlatformFailures} from '../../../utils/metrics'; import {promises, constants} from 'fs'; import memoize from 'lodash.memoize'; -import {notNull} from './typeUtils'; +import {notNull} from '../../utils/typeUtils'; import {promisify} from 'util'; import child_process from 'child_process'; import fs from 'fs-extra'; import path from 'path'; -import fbConfig from '../../fb-stubs/config'; +import fbConfig from '../../../fb-stubs/config'; import {notification, Typography} from 'antd'; const exec = promisify(child_process.exec); diff --git a/desktop/app/src/server/iOSDevice.tsx b/desktop/app/src/server/devices/ios/iOSDeviceManager.tsx similarity index 95% rename from desktop/app/src/server/iOSDevice.tsx rename to desktop/app/src/server/devices/ios/iOSDeviceManager.tsx index f4aeaa301..dd5a421f1 100644 --- a/desktop/app/src/server/iOSDevice.tsx +++ b/desktop/app/src/server/devices/ios/iOSDeviceManager.tsx @@ -8,24 +8,24 @@ */ import {ChildProcess} from 'child_process'; -import {Store} from '../reducers/index'; -import {setXcodeDetected} from '../reducers/application'; -import {Logger} from '../fb-interfaces/Logger'; +import {Store} from '../../../reducers/index'; +import {setXcodeDetected} from '../../../reducers/application'; +import {Logger} from '../../../fb-interfaces/Logger'; import type {DeviceType} from 'flipper-plugin'; import {promisify} from 'util'; import path from 'path'; import child_process from 'child_process'; const execFile = child_process.execFile; -import iosUtil from '../server/utils/iOSContainerUtility'; -import IOSDevice from '../server/devices/IOSDevice'; -import {addErrorNotification} from '../reducers/notifications'; -import {getStaticPath} from '../utils/pathUtils'; -import {destroyDevice} from '../reducers/connections'; +import iosUtil from './iOSContainerUtility'; +import IOSDevice from './IOSDevice'; +import {addErrorNotification} from '../../../reducers/notifications'; +import {getStaticPath} from '../../../utils/pathUtils'; +import {destroyDevice} from '../../../reducers/connections'; import { ERR_NO_IDB_OR_XCODE_AVAILABLE, IOSBridge, makeIOSBridge, -} from '../server/utils/IOSBridge'; +} from './IOSBridge'; type iOSSimulatorDevice = { state: 'Booted' | 'Shutdown' | 'Shutting Down'; diff --git a/desktop/app/src/server/devices/MetroDevice.tsx b/desktop/app/src/server/devices/metro/MetroDevice.tsx similarity index 99% rename from desktop/app/src/server/devices/MetroDevice.tsx rename to desktop/app/src/server/devices/metro/MetroDevice.tsx index 85b839c7a..c3d44dd30 100644 --- a/desktop/app/src/server/devices/MetroDevice.tsx +++ b/desktop/app/src/server/devices/metro/MetroDevice.tsx @@ -8,7 +8,7 @@ */ import {LogLevel} from 'flipper-plugin'; -import BaseDevice from './BaseDevice'; +import BaseDevice from '../BaseDevice'; import {EventEmitter} from 'events'; import util from 'util'; diff --git a/desktop/app/src/server/metroDevice.tsx b/desktop/app/src/server/devices/metro/metroDeviceManager.tsx similarity index 91% rename from desktop/app/src/server/metroDevice.tsx rename to desktop/app/src/server/devices/metro/metroDeviceManager.tsx index 762c1bfc9..98a5e8756 100644 --- a/desktop/app/src/server/metroDevice.tsx +++ b/desktop/app/src/server/devices/metro/metroDeviceManager.tsx @@ -7,13 +7,13 @@ * @format */ -import {Store} from '../reducers/index'; -import {Logger} from '../fb-interfaces/Logger'; -import MetroDevice from '../server/devices/MetroDevice'; +import {Store} from '../../../reducers/index'; +import {Logger} from '../../../fb-interfaces/Logger'; +import MetroDevice from './MetroDevice'; import http from 'http'; -import {addErrorNotification} from '../reducers/notifications'; -import {destroyDevice} from '../reducers/connections'; -import {parseEnvironmentVariableAsNumber} from '../server/utils/environmentVariables'; +import {addErrorNotification} from '../../../reducers/notifications'; +import {destroyDevice} from '../../../reducers/connections'; +import {parseEnvironmentVariableAsNumber} from '../../utils/environmentVariables'; const METRO_HOST = 'localhost'; const METRO_PORT = parseEnvironmentVariableAsNumber('METRO_SERVER_PORT', 8081); diff --git a/desktop/app/src/server/devices/JSDevice.tsx b/desktop/app/src/server/devices/webapp/JSDevice.tsx similarity index 91% rename from desktop/app/src/server/devices/JSDevice.tsx rename to desktop/app/src/server/devices/webapp/JSDevice.tsx index d5db6f260..2abc55cec 100644 --- a/desktop/app/src/server/devices/JSDevice.tsx +++ b/desktop/app/src/server/devices/webapp/JSDevice.tsx @@ -7,7 +7,7 @@ * @format */ -import BaseDevice from './BaseDevice'; +import BaseDevice from '../BaseDevice'; export default class JSDevice extends BaseDevice { webContentsId: number; diff --git a/desktop/app/src/server/utils/js-client-server-utils/serverUtils.tsx b/desktop/app/src/server/devices/webapp/jsServerUtils.tsx similarity index 99% rename from desktop/app/src/server/utils/js-client-server-utils/serverUtils.tsx rename to desktop/app/src/server/devices/webapp/jsServerUtils.tsx index 75c2104be..1b8bcec69 100644 --- a/desktop/app/src/server/utils/js-client-server-utils/serverUtils.tsx +++ b/desktop/app/src/server/devices/webapp/jsServerUtils.tsx @@ -15,7 +15,7 @@ import { ResponseType, } from '../../comms/ClientConnection'; import {ipcRenderer, remote, IpcRendererEvent} from 'electron'; -import JSDevice from '../../devices/JSDevice'; +import JSDevice from './JSDevice'; import {Store} from '../../../reducers'; import {Logger} from '../../../fb-interfaces/Logger'; import ServerController from '../../comms/ServerController'; diff --git a/desktop/app/src/server/utils/CertificateProvider.tsx b/desktop/app/src/server/utils/CertificateProvider.tsx index 258eed444..4973e762e 100644 --- a/desktop/app/src/server/utils/CertificateProvider.tsx +++ b/desktop/app/src/server/utils/CertificateProvider.tsx @@ -20,10 +20,10 @@ import { } from './openssl-wrapper-with-promises'; import path from 'path'; import tmp, {DirOptions, FileOptions} from 'tmp'; -import iosUtil from './iOSContainerUtility'; +import iosUtil from '../devices/ios/iOSContainerUtility'; import {reportPlatformFailures} from '../../utils/metrics'; -import {getAdbClient} from './adbClient'; -import * as androidUtil from './androidContainerUtility'; +import {getAdbClient} from '../devices/android/adbClient'; +import * as androidUtil from '../devices/android/androidContainerUtility'; import os from 'os'; import {Client as ADBClient} from 'adbkit'; import archiver from 'archiver';