Cleanup and some code reuse between Device- and normal Plugins
Summary: Introducing a base abstract class (blegh) to share some life cycle management between Device- and normal plugins. Cleaned up the test utils a bit as well + some old TODO's that now have been taken care of Reviewed By: nikoant Differential Revision: D22727089 fbshipit-source-id: 507816f1bfdbc6e7e71d4bd365b881b6710ca917
This commit is contained in:
committed by
Facebook GitHub Bot
parent
b9c9e89b53
commit
642261c0d0
@@ -15,7 +15,7 @@ import {
|
||||
SandyDevicePluginInstance,
|
||||
SandyPluginDefinition,
|
||||
} from 'flipper-plugin';
|
||||
import {DevicePluginMap} from '../plugin';
|
||||
import {DevicePluginMap, FlipperDevicePlugin} from '../plugin';
|
||||
|
||||
export type DeviceShell = {
|
||||
stdout: stream.Readable;
|
||||
@@ -179,18 +179,22 @@ export default class BaseDevice {
|
||||
const plugins = Array.from(devicePlugins.values());
|
||||
plugins.sort(sortPluginsByName);
|
||||
for (const plugin of plugins) {
|
||||
if (plugin instanceof SandyPluginDefinition) {
|
||||
if (plugin.asDevicePluginModule().supportsDevice(this as any)) {
|
||||
this.devicePlugins.push(plugin.id);
|
||||
this.sandyPluginStates.set(
|
||||
plugin.id,
|
||||
new SandyDevicePluginInstance(this, plugin),
|
||||
); // TODO: pass initial state if applicable
|
||||
}
|
||||
} else {
|
||||
if (plugin.supportsDevice(this)) {
|
||||
this.devicePlugins.push(plugin.id);
|
||||
}
|
||||
this.loadDevicePlugin(plugin);
|
||||
}
|
||||
}
|
||||
|
||||
loadDevicePlugin(plugin: typeof FlipperDevicePlugin | SandyPluginDefinition) {
|
||||
if (plugin instanceof SandyPluginDefinition) {
|
||||
if (plugin.asDevicePluginModule().supportsDevice(this as any)) {
|
||||
this.devicePlugins.push(plugin.id);
|
||||
this.sandyPluginStates.set(
|
||||
plugin.id,
|
||||
new SandyDevicePluginInstance(this, plugin),
|
||||
); // TODO T70582933: pass initial state if applicable
|
||||
}
|
||||
} else {
|
||||
if (plugin.supportsDevice(this)) {
|
||||
this.devicePlugins.push(plugin.id);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user