Remove global access to adb client and idb config

Summary: Idb and adb sholuld not really be accessed out side of Adnroid and iOS device managers

Reviewed By: lawrencelomax

Differential Revision: D33915162

fbshipit-source-id: 0d1bb028b9a53254cf5b0ce6289ae76339c5a254
This commit is contained in:
Andrey Goncharov
2022-02-02 03:05:34 -08:00
committed by Facebook GitHub Bot
parent 51ef1810b2
commit c7492a83c7
6 changed files with 14 additions and 42 deletions

View File

@@ -13,20 +13,14 @@ import adbConfig from './adbConfig';
import adbkit, {Client} from 'adbkit';
import path from 'path';
let instance: Client | undefined;
type Config = {
androidHome: string;
};
export function getAdbClient(): Client | undefined {
return instance;
}
export async function setAdbClient(
export async function initializeAdbClient(
config: Config,
): Promise<Client | undefined> {
instance = await reportPlatformFailures(
): Promise<Client | void> {
const adbClient = await reportPlatformFailures(
createClient(config),
'createADBClient',
).catch((e) => {
@@ -34,9 +28,8 @@ export async function setAdbClient(
'Failed to initialize ADB. Please disable Android support in settings, or configure a correct path.',
e,
);
return undefined;
});
return instance;
return adbClient;
}
/* Adbkit will attempt to start the adb server if it's not already running,

View File

@@ -7,9 +7,8 @@
* @format
*/
import {IdbConfig} from './idbConfig';
import CertificateProvider from '../../utils/CertificateProvider';
import iosUtil from './iOSContainerUtility';
import iosUtil, {IdbConfig} from './iOSContainerUtility';
import fs from 'fs-extra';
import {promisify} from 'util';
import tmp, {DirOptions} from 'tmp';

View File

@@ -19,6 +19,11 @@ import fs from 'fs-extra';
import path from 'path';
const exec = promisify(child_process.exec);
export type IdbConfig = {
idbPath: string;
enablePhysicalIOS: boolean;
};
// Use debug to get helpful logs when idb fails
const idbLogLevel = 'DEBUG';
const operationPrefix = 'iosContainerUtility';

View File

@@ -12,7 +12,7 @@ import type {IOSDeviceParams} from 'flipper-common';
import path from 'path';
import childProcess from 'child_process';
import {exec} from 'promisify-child-process';
import iosUtil from './iOSContainerUtility';
import iosUtil, {IdbConfig} from './iOSContainerUtility';
import IOSDevice from './IOSDevice';
import {
ERR_NO_IDB_OR_XCODE_AVAILABLE,
@@ -22,7 +22,6 @@ import {
} from './IOSBridge';
import {FlipperServerImpl} from '../../FlipperServerImpl';
import {getFlipperServerConfig} from '../../FlipperServerConfig';
import {IdbConfig} from './idbConfig';
import iOSCertificateProvider from './iOSCertificateProvider';
export class IOSDeviceManager {

View File

@@ -1,22 +0,0 @@
/**
* Copyright (c) Meta Platforms, Inc. and affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*
* @format
*/
export type IdbConfig = {
idbPath: string;
enablePhysicalIOS: boolean;
};
let idbConfig: IdbConfig | undefined;
export const getIdbConfig = () => idbConfig;
export const setIdbConfig = (newIdbConfig: IdbConfig) => {
idbConfig = newIdbConfig;
return idbConfig;
};