From fc20abf3923b9a52003ee80d27051a75b6a186e3 Mon Sep 17 00:00:00 2001 From: Andrey Goncharov Date: Mon, 28 Feb 2022 03:50:34 -0800 Subject: [PATCH] Add Flipper server command definitions Reviewed By: lblasa Differential Revision: D33980529 fbshipit-source-id: b64f48134d4816d3502c70d15beff90a044490a4 --- desktop/flipper-common/src/PluginDetails.tsx | 2 ++ desktop/flipper-common/src/server-types.tsx | 2 ++ desktop/flipper-server-core/src/FlipperServerImpl.tsx | 4 ++++ desktop/flipper-server-core/src/plugins/PluginManager.tsx | 8 ++++++++ .../plugin-lib/src/__tests__/getPluginDetails.node.tsx | 7 +++++++ 5 files changed, 23 insertions(+) diff --git a/desktop/flipper-common/src/PluginDetails.tsx b/desktop/flipper-common/src/PluginDetails.tsx index 3de98b19a..8c459a2f3 100644 --- a/desktop/flipper-common/src/PluginDetails.tsx +++ b/desktop/flipper-common/src/PluginDetails.tsx @@ -13,6 +13,7 @@ export interface PluginDetails { version: string; source: string; main: string; + serverAddOn?: string; id: string; gatekeeper?: string; title: string; @@ -159,6 +160,7 @@ function getPluginDetailsV2(packageJson: any): PluginDetails { name: packageJson.name, version: packageJson.version, main: packageJson.main, + serverAddOn: packageJson.serverAddOn, source: packageJson.flipperBundlerEntry, id: packageJson.id || packageJson.name, gatekeeper: packageJson.gatekeeper, diff --git a/desktop/flipper-common/src/server-types.tsx b/desktop/flipper-common/src/server-types.tsx index a4373c268..c853114e7 100644 --- a/desktop/flipper-common/src/server-types.tsx +++ b/desktop/flipper-common/src/server-types.tsx @@ -249,6 +249,8 @@ export type FlipperServerCommands = { path: string, ) => Promise; 'plugins-remove-plugins': (names: string[]) => Promise; + 'plugins-server-add-on-start': (pluginName: string) => Promise; + 'plugins-server-add-on-stop': (pluginName: string) => Promise; 'doctor-get-healthchecks': ( settings: FlipperDoctor.HealthcheckSettings, ) => Promise; diff --git a/desktop/flipper-server-core/src/FlipperServerImpl.tsx b/desktop/flipper-server-core/src/FlipperServerImpl.tsx index f45017cbb..37d800d68 100644 --- a/desktop/flipper-server-core/src/FlipperServerImpl.tsx +++ b/desktop/flipper-server-core/src/FlipperServerImpl.tsx @@ -419,6 +419,10 @@ export class FlipperServerImpl implements FlipperServer { 'plugins-install-from-npm': (name) => this.pluginManager.installPluginFromNpm(name), 'plugin-source': (path) => this.pluginManager.loadSource(path), + 'plugins-server-add-on-start': (pluginName) => + this.pluginManager.startServerAddOn(pluginName), + 'plugins-server-add-on-stop': (pluginName) => + this.pluginManager.stopServerAddOn(pluginName), 'doctor-get-healthchecks': getHealthChecks, 'doctor-run-healthcheck': runHealthcheck, 'open-file': openFile, diff --git a/desktop/flipper-server-core/src/plugins/PluginManager.tsx b/desktop/flipper-server-core/src/plugins/PluginManager.tsx index 8c3d6d099..3156da938 100644 --- a/desktop/flipper-server-core/src/plugins/PluginManager.tsx +++ b/desktop/flipper-server-core/src/plugins/PluginManager.tsx @@ -151,4 +151,12 @@ export class PluginManager { await fs.remove(tmpDir); } } + + async startServerAddOn(pluginName: string) { + console.debug('PluginManager.startServerAddOn', pluginName); + } + + async stopServerAddOn(pluginName: string) { + console.debug('PluginManager.stopServerAddOn', pluginName); + } } diff --git a/desktop/plugin-lib/src/__tests__/getPluginDetails.node.tsx b/desktop/plugin-lib/src/__tests__/getPluginDetails.node.tsx index acc7addd3..cb313aedf 100644 --- a/desktop/plugin-lib/src/__tests__/getPluginDetails.node.tsx +++ b/desktop/plugin-lib/src/__tests__/getPluginDetails.node.tsx @@ -96,6 +96,7 @@ test('getPluginDetailsV2', async () => { "name": "flipper-plugin-test", "pluginType": undefined, "publishedDocs": undefined, + "serverAddOn": undefined, "source": "src/index.tsx", "specVersion": 2, "supportedApps": undefined, @@ -139,6 +140,7 @@ test('id used as title if the latter omited', async () => { "name": "flipper-plugin-test", "pluginType": undefined, "publishedDocs": undefined, + "serverAddOn": undefined, "source": "src/index.tsx", "specVersion": 2, "supportedApps": undefined, @@ -181,6 +183,7 @@ test('name without "flipper-plugin-" prefix is used as title if the latter omite "name": "flipper-plugin-test", "pluginType": undefined, "publishedDocs": undefined, + "serverAddOn": undefined, "source": "src/index.tsx", "specVersion": 2, "supportedApps": undefined, @@ -226,6 +229,7 @@ test('flipper-plugin-version is parsed', async () => { "name": "flipper-plugin-test", "pluginType": undefined, "publishedDocs": undefined, + "serverAddOn": undefined, "source": "src/index.tsx", "specVersion": 2, "supportedApps": undefined, @@ -275,6 +279,7 @@ test('plugin type and supported devices parsed', async () => { "name": "flipper-plugin-test", "pluginType": "device", "publishedDocs": undefined, + "serverAddOn": undefined, "source": "src/index.tsx", "specVersion": 2, "supportedApps": undefined, @@ -340,6 +345,7 @@ test('plugin type and supported apps parsed', async () => { "name": "flipper-plugin-test", "pluginType": "client", "publishedDocs": undefined, + "serverAddOn": undefined, "source": "src/index.tsx", "specVersion": 2, "supportedApps": Array [ @@ -428,6 +434,7 @@ test('can merge two package.json files', async () => { "overview": true, "setup": true, }, + "serverAddOn": undefined, "source": "src/index.tsx", "specVersion": 2, "supportedApps": undefined,