Load bundled server add-ons
Reviewed By: antonk52 Differential Revision: D34238883 fbshipit-source-id: 01b4b1c1c0a63cbfb639e903f6a77307ae370330
This commit is contained in:
committed by
Facebook GitHub Bot
parent
b655efc78e
commit
2ce037d96b
@@ -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 =
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -174,11 +174,10 @@ 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}'))`,
|
||||
` '${x.name}': tryRequire('${x.name}', () => require('${x.name}/${x.serverAddOnSource}'))`,
|
||||
)
|
||||
.join(',\n');
|
||||
const generatedIndexServerAddOns = getGeneratedIndex(serverAddOnRequires);
|
||||
@@ -187,7 +186,6 @@ async function generateDefaultPluginEntryPoints(
|
||||
path.join(serverCoreDir, 'src', 'defaultPlugins', 'index.tsx'),
|
||||
generatedIndexServerAddOns,
|
||||
);
|
||||
}
|
||||
|
||||
console.log('✅ Generated bundled plugin entry points.');
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user