mirror of
https://github.com/lensapp/lens.git
synced 2025-05-20 05:10:56 +00:00
Install all extensions via package.json (#6214)
This commit is contained in:
1 parent
c9b1849314
commit
2d6239123b
2 files changed
+9
-23
No files matched your search
@@ -390,28 +390,11 @@ export class ExtensionDiscovery {
|
||||
|
||||
async ensureExtensions(): Promise<Map<LensExtensionId, InstalledExtension>> {
|
||||
const bundledExtensions = await this.loadBundledExtensions();
|
||||
|
||||
await this.installBundledPackages(this.packageJsonPath, bundledExtensions);
|
||||
|
||||
const userExtensions = await this.loadFromFolder(this.localFolderPath, bundledExtensions.map((extension) => extension.manifest.name));
|
||||
|
||||
for (const extension of userExtensions) {
|
||||
if (!(await this.dependencies.pathExists(extension.manifestPath))) {
|
||||
try {
|
||||
await this.dependencies.installExtension(extension.absolutePath);
|
||||
} catch (error) {
|
||||
const message = error instanceof Error
|
||||
? error.message
|
||||
: String(error || "unknown error");
|
||||
const { name, version } = extension.manifest;
|
||||
|
||||
this.dependencies.logger.error(`${logModule}: failed to install user extension ${name}@${version}: ${message}`);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
const extensions = bundledExtensions.concat(userExtensions);
|
||||
|
||||
await this.installBundledPackages(this.packageJsonPath, extensions);
|
||||
|
||||
return this.extensions = new Map(extensions.map(extension => [extension.id, extension]));
|
||||
}
|
||||
|
||||
@@ -420,10 +403,13 @@ export class ExtensionDiscovery {
|
||||
*/
|
||||
installBundledPackages(packageJsonPath: string, extensions: InstalledExtension[]): Promise<void> {
|
||||
const dependencies = Object.fromEntries(
|
||||
extensions.map(extension => [extension.manifest.name, extension.absolutePath]),
|
||||
extensions.filter(extension => extension.isBundled).map(extension => [extension.manifest.name, extension.absolutePath]),
|
||||
);
|
||||
const optionalDependencies = Object.fromEntries(
|
||||
extensions.filter(extension => !extension.isBundled).map(extension => [extension.manifest.name, extension.absolutePath]),
|
||||
);
|
||||
|
||||
return this.dependencies.installExtensions(packageJsonPath, { dependencies });
|
||||
return this.dependencies.installExtensions(packageJsonPath, { dependencies, optionalDependencies });
|
||||
}
|
||||
|
||||
async loadBundledExtensions(): Promise<InstalledExtension[]> {
|
||||
|
||||
Reference in new issue
Block a user