Make plugin loading async
Summary: This diff makes plugin loading async, which we'd need in a browser env (either because we'd use `import()` or we need to fetch the source and than eval it), and deals with all the fallout of that Reviewed By: timur-valiev Differential Revision: D32669995 fbshipit-source-id: 73babf38a6757c451b8200c3b320409f127b8b5b
This commit is contained in:
committed by
Facebook GitHub Bot
parent
64747dc417
commit
de59bbedd2
@@ -8,6 +8,7 @@
|
||||
*/
|
||||
|
||||
import {FlipperServer, FlipperServerConfig} from 'flipper-common';
|
||||
import {getRenderHostInstance} from 'flipper-ui-core';
|
||||
|
||||
export function initializeRenderHost(
|
||||
flipperServer: FlipperServer,
|
||||
@@ -62,6 +63,15 @@ export function initializeRenderHost(
|
||||
return flipperServerConfig.gatekeepers[gatekeeper] ?? false;
|
||||
},
|
||||
flipperServer,
|
||||
async requirePlugin(path) {
|
||||
// TODO: use `await import(path)`?
|
||||
const source = await getRenderHostInstance().flipperServer.exec(
|
||||
'plugin-source',
|
||||
path,
|
||||
);
|
||||
// eslint-disable-next-line no-eval
|
||||
return eval(source);
|
||||
},
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user