From eabc1c556eb834230427ce56e84402db6bfafdd6 Mon Sep 17 00:00:00 2001 From: Lorenzo Blasa Date: Tue, 17 May 2022 04:20:30 -0700 Subject: [PATCH] Extract flipper server instantiation Summary: ^ This is a very small refactoring and addition to the Flipper Desktop app. The instantiation of FlipperServer was extracted to a separate function. This a very tiny change that allows to switch the implementation we use for FlipperServer in a more convenient way. In this same change, an unused function is added which will create a separate FlipperServer instance that uses a web-socket underneath which makes it possible to use with flipper-server. So, if interested, it is enough to call that function instead of the one currently in use and it will make Flipper connect to flipper-server instead. https://pxl.cl/24j8R Reviewed By: passy Differential Revision: D36440574 fbshipit-source-id: 94ea2ab7208b898a82ac5e7fd7edd9cb824b4810 --- desktop/app/package.json | 1 + desktop/app/src/init.tsx | 27 +++++++++++++++++++++++---- desktop/app/tsconfig.json | 3 +++ 3 files changed, 27 insertions(+), 4 deletions(-) diff --git a/desktop/app/package.json b/desktop/app/package.json index e936c0a43..612767280 100644 --- a/desktop/app/package.json +++ b/desktop/app/package.json @@ -16,6 +16,7 @@ "dependencies": { "flipper-common": "0.0.0", "flipper-server-core": "0.0.0", + "flipper-frontend-core": "0.0.0", "flipper-ui-core": "0.0.0", "fs-extra": "^10.1.0", "invariant": "^2.2.2", diff --git a/desktop/app/src/init.tsx b/desktop/app/src/init.tsx index 0bd8b60e9..66325b6ff 100644 --- a/desktop/app/src/init.tsx +++ b/desktop/app/src/init.tsx @@ -16,7 +16,7 @@ import { } from 'flipper-plugin'; // eslint-disable-next-line no-restricted-imports,flipper/no-electron-remote-imports import {remote} from 'electron'; -import os from 'os'; +import {createFlipperServer, FlipperServerState} from 'flipper-frontend-core'; import { FlipperServerImpl, getEnvironmentInfo, @@ -27,6 +27,7 @@ import { setupPrefetcher, } from 'flipper-server-core'; import { + FlipperServer, getLogger, isTest, Logger, @@ -41,7 +42,9 @@ import fs from 'fs-extra'; enableMapSet(); -async function start() { +async function getEmbeddedFlipperServer( + logger: Logger, +): Promise { const app = remote.app; const execPath = process.execPath || remote.process.execPath; const appPath = app.getAppPath(); @@ -49,8 +52,6 @@ async function start() { const isProduction = !/node_modules[\\/]electron[\\/]/.test(execPath); const env = process.env; const environmentInfo = await getEnvironmentInfo(staticPath, isProduction); - const logger = createDelegatedLogger(); - setLoggerInstance(logger); let keytar: any = undefined; try { @@ -94,6 +95,24 @@ async function start() { keytar, ); + return flipperServer; +} + +// eslint-disable-next-line @typescript-eslint/no-unused-vars +async function getFlipperServer(_logger: Logger): Promise { + const flipperServer = await createFlipperServer( + 'localhost', + 52342, + (_state: FlipperServerState) => {}, + ); + return flipperServer; +} + +async function start() { + const logger = createDelegatedLogger(); + setLoggerInstance(logger); + + const flipperServer: FlipperServer = await getEmbeddedFlipperServer(logger); const flipperServerConfig = await flipperServer.exec('get-config'); initializeElectron(flipperServer, flipperServerConfig); diff --git a/desktop/app/tsconfig.json b/desktop/app/tsconfig.json index 849273969..5ea9ddee8 100644 --- a/desktop/app/tsconfig.json +++ b/desktop/app/tsconfig.json @@ -14,6 +14,9 @@ { "path": "../flipper-common" }, + { + "path": "../flipper-frontend-core" + }, { "path": "../flipper-server-core" },