diff --git a/desktop/app/src/dispatcher/plugins.tsx b/desktop/app/src/dispatcher/plugins.tsx index 6b73d496d..27d04ac0d 100644 --- a/desktop/app/src/dispatcher/plugins.tsx +++ b/desktop/app/src/dispatcher/plugins.tsx @@ -104,6 +104,20 @@ export default async (store: Store, logger: Logger) => { .map(createRequirePluginFunction(failedPlugins)) .filter(notNull); + const classicPlugins = initialPlugins.filter( + (p) => !isSandyPlugin(p.details), + ); + if (process.env.NODE_ENV !== 'test' && classicPlugins.length) { + console.warn( + `${ + classicPlugins.length + } plugin(s) were loaded in legacy mode. Please visit https://fbflipper.com/docs/extending/sandy-migration to learn how to migrate these plugins to the new Sandy architecture: \n${classicPlugins + .map((p) => `${p.title} (id: ${p.id})`) + .sort() + .join('\n')}`, + ); + } + store.dispatch(registerBundledPlugins(bundledPlugins)); store.dispatch(registerLoadedPlugins(loadedPlugins)); store.dispatch(addGatekeepedPlugins(gatekeepedPlugins)); @@ -282,6 +296,10 @@ export const requirePlugin = ( ); }; +const isSandyPlugin = (pluginDetails: ActivatablePluginDetails) => { + return !!pluginDetails.flipperSDKVersion; +}; + const requirePluginInternal = ( pluginDetails: ActivatablePluginDetails, reqFn: Function = global.electronRequire, @@ -289,7 +307,7 @@ const requirePluginInternal = ( let plugin = pluginDetails.isBundled ? defaultPluginsIndex[pluginDetails.name] : reqFn(pluginDetails.entry); - if (pluginDetails.flipperSDKVersion) { + if (isSandyPlugin(pluginDetails)) { // Sandy plugin return new _SandyPluginDefinition(pluginDetails, plugin); } else { diff --git a/desktop/app/src/utils/createSandyPluginWrapper.tsx b/desktop/app/src/utils/createSandyPluginWrapper.tsx index c1bd19829..02a9c5213 100644 --- a/desktop/app/src/utils/createSandyPluginWrapper.tsx +++ b/desktop/app/src/utils/createSandyPluginWrapper.tsx @@ -38,14 +38,6 @@ export function createSandyPluginWrapper( Plugin: typeof FlipperPlugin | typeof FlipperDevicePlugin, ): SandyPluginModule { const isDevicePlugin = Plugin.prototype instanceof FlipperDevicePlugin; - if (process.env.NODE_ENV !== 'test') { - console.warn( - `Loading ${isDevicePlugin ? 'device' : 'client'} plugin ${ - Plugin.id - } in legacy mode. Please visit https://fbflipper.com/docs/extending/sandy-migration to learn how to migrate this plugin to the new Sandy architecture`, - ); - } - function legacyPluginWrapper(client: PluginClient | DevicePluginClient) { const store = getStore(); const appClient = isDevicePlugin