Load only compatible plugins on startup

Summary: We currently filtering out incompatible versions from marketplace. This diff also add filtering for incompatible installed plugins on Flipper startup to ensure we always load the latest compatible version.

Reviewed By: passy

Differential Revision: D28341891

fbshipit-source-id: 83afc14a3c07e1763e1bd146251e6d3b71a66248
This commit is contained in:
Anton Nikolaev
2021-05-11 17:02:24 -07:00
committed by Facebook GitHub Bot
parent 252322f525
commit a8ca142c9a
4 changed files with 36 additions and 8 deletions

View File

@@ -140,6 +140,19 @@ export async function removePlugins(
await pmap(names, (name) => removePlugin(name));
}
export async function getAllInstalledPluginVersions(): Promise<
InstalledPluginDetails[]
> {
const pluginDirs = await getInstalledPluginVersionDirs();
const versionDirs = pluginDirs.map(([_, versionDirs]) => versionDirs).flat();
return await pmap(versionDirs, (versionDir) =>
getInstalledPluginDetails(versionDir).catch((err) => {
console.error(`Failed to load plugin details from ${versionDir}`, err);
return null;
}),
).then((versionDetails) => versionDetails.filter(notNull));
}
export async function getInstalledPlugins(): Promise<InstalledPluginDetails[]> {
const versionDirs = await getInstalledPluginVersionDirs();
return pmap(