diff --git a/desktop/flipper-server-core/src/plugins/ServerAddOn.tsx b/desktop/flipper-server-core/src/plugins/ServerAddOn.tsx index e557d3082..0bba28f47 100644 --- a/desktop/flipper-server-core/src/plugins/ServerAddOn.tsx +++ b/desktop/flipper-server-core/src/plugins/ServerAddOn.tsx @@ -16,13 +16,22 @@ import { } from 'flipper-common'; import {ServerAddOnDesktopToModuleConnection} from './ServerAddOnDesktopToModuleConnection'; import {ServerAddOnModuleToDesktopConnection} from './ServerAddOnModuleToDesktopConnection'; +// @ts-ignore +import defaultPlugins from '../defaultPlugins'; interface ServerAddOnModule { - default?: ServerAddOnFn; + default: ServerAddOnFn; } -const loadPlugin = (_pluginName: string): ServerAddOnModule => { - // TODO: Implement me +const loadPlugin = (pluginName: string): ServerAddOnModule => { + console.debug('loadPlugin', pluginName); + + const bundledPlugin = defaultPlugins[pluginName]; + if (bundledPlugin) { + return bundledPlugin; + } + + // TODO: Use getInstalledPlugin return {default: async () => async () => {}}; }; @@ -51,7 +60,7 @@ export class ServerAddOn { assertNotNull(serverAddOn); assert( typeof serverAddOn === 'function', - `ServerAddOn ${pluginName} must export "serverAddOn" function.`, + `ServerAddOn ${pluginName} must export "serverAddOn" function as a default export.`, ); const serverAddOnModuleToDesktopConnection = diff --git a/desktop/flipper-server-core/src/plugins/ServerAddOnModuleToDesktopConnection.tsx b/desktop/flipper-server-core/src/plugins/ServerAddOnModuleToDesktopConnection.tsx index c1903251c..04bd2ffca 100644 --- a/desktop/flipper-server-core/src/plugins/ServerAddOnModuleToDesktopConnection.tsx +++ b/desktop/flipper-server-core/src/plugins/ServerAddOnModuleToDesktopConnection.tsx @@ -34,7 +34,7 @@ export class ServerAddOnModuleToDesktopConnection params: { method, params, - api: '', // TODO: Consider using here pluginId and validate it + api: '', // TODO: Consider using here pluginName and validate it }, }; this.emit('message', message); diff --git a/desktop/scripts/build-utils.tsx b/desktop/scripts/build-utils.tsx index 6ffa1f68e..4ed5d0bbe 100644 --- a/desktop/scripts/build-utils.tsx +++ b/desktop/scripts/build-utils.tsx @@ -174,20 +174,18 @@ async function generateDefaultPluginEntryPoints( const serverAddOns = defaultPlugins.filter( ({serverAddOnSource}) => !!serverAddOnSource, ); - if (serverAddOns.length) { - const serverAddOnRequires = serverAddOns - .map( - (x) => - ` '${x.name}': tryRequire('${x.serverAddOnSource}', () => require('${x.serverAddOnSource}'))`, - ) - .join(',\n'); - const generatedIndexServerAddOns = getGeneratedIndex(serverAddOnRequires); - await fs.ensureDir(path.join(serverCoreDir, 'src', 'defaultPlugins')); - await fs.writeFile( - path.join(serverCoreDir, 'src', 'defaultPlugins', 'index.tsx'), - generatedIndexServerAddOns, - ); - } + const serverAddOnRequires = serverAddOns + .map( + (x) => + ` '${x.name}': tryRequire('${x.name}', () => require('${x.name}/${x.serverAddOnSource}'))`, + ) + .join(',\n'); + const generatedIndexServerAddOns = getGeneratedIndex(serverAddOnRequires); + await fs.ensureDir(path.join(serverCoreDir, 'src', 'defaultPlugins')); + await fs.writeFile( + path.join(serverCoreDir, 'src', 'defaultPlugins', 'index.tsx'), + generatedIndexServerAddOns, + ); console.log('✅ Generated bundled plugin entry points.'); }