Summary: flipper-server-companion depends on flipper-plugin. flipper-plugin includes dependencies that run only in a browser. Splitting flipper-plugin into core and browser packages helps to avoid including browser-only dependencies into flipper-server bundle. As a result, bundle size could be cut in half. Subsequently, RSS usage drops as there is twice as less code to process for V8. Note: it currently breaks external flipper-data-source package. It will be restored in subsequent diffs Reviewed By: lblasa Differential Revision: D38658285 fbshipit-source-id: 751b11fa9f3a2d938ce166687b8310ba8b059dee
46 lines
1.3 KiB
TypeScript
46 lines
1.3 KiB
TypeScript
/**
|
|
* 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
|
|
*/
|
|
|
|
import {ClientQuery, FlipperServer, Logger} from 'flipper-common';
|
|
import {
|
|
AbstractClient,
|
|
ClientConnection,
|
|
BaseDevice,
|
|
} from 'flipper-frontend-core';
|
|
import {_SandyPluginDefinition} from 'flipper-plugin-core';
|
|
|
|
export class HeadlessClient extends AbstractClient {
|
|
constructor(
|
|
id: string,
|
|
query: ClientQuery,
|
|
conn: ClientConnection | null | undefined,
|
|
logger: Logger,
|
|
plugins: Set<string> | null | undefined,
|
|
device: BaseDevice,
|
|
flipperServer: FlipperServer,
|
|
private loadablePlugins: Map<string, _SandyPluginDefinition>,
|
|
) {
|
|
super(id, query, conn, logger, plugins, device, flipperServer);
|
|
}
|
|
|
|
isBackgroundPlugin(_pluginId: string) {
|
|
// In headless context we treat every plugin as a non-background one because we do not want to start anything automatically to preseve resources
|
|
return false;
|
|
}
|
|
|
|
// Headless client never starts plugins automaticaly to preserve server resources
|
|
shouldConnectAsBackgroundPlugin() {
|
|
return false;
|
|
}
|
|
|
|
async getPlugin(pluginId: string) {
|
|
return this.loadablePlugins.get(pluginId);
|
|
}
|
|
}
|