1
0
mirror of https://github.com/lensapp/lens.git synced 2025-05-20 05:10:56 +00:00

Move updateChecker into InstalledExtension type

Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
This commit is contained in:
Alex Andreev 2022-01-26 14:29:39 +03:00
parent 518702c127
commit bc0ca6c3a0
5 changed files with 10 additions and 9 deletions

View File

@ -24,6 +24,7 @@ import type { LensExtensionId, LensExtensionManifest } from "../lens-extension";
import { isProduction } from "../../common/vars"; import { isProduction } from "../../common/vars";
import type { ExtensionInstallationStateStore } from "../extension-installation-state-store/extension-installation-state-store"; import type { ExtensionInstallationStateStore } from "../extension-installation-state-store/extension-installation-state-store";
import type { PackageJson } from "type-fest"; import type { PackageJson } from "type-fest";
import type { LensExtensionUpdateChecker } from "../lens-extension-update-checker";
interface Dependencies { interface Dependencies {
extensionLoader: ExtensionLoader; extensionLoader: ExtensionLoader;
@ -57,6 +58,7 @@ export interface InstalledExtension {
version: string; version: string;
input: string; input: string;
} }
updateChecker?: LensExtensionUpdateChecker
} }
const logModule = "[EXTENSION-DISCOVERY]"; const logModule = "[EXTENSION-DISCOVERY]";

View File

@ -8,12 +8,11 @@ import {
LensExtensionDependencies, LensExtensionDependencies,
setLensExtensionDependencies, setLensExtensionDependencies,
} from "../../lens-extension-set-dependencies"; } from "../../lens-extension-set-dependencies";
import type { LensExtensionUpdateChecker } from "../../lens-extension-update-checker";
export const createExtensionInstance = export const createExtensionInstance =
(dependencies: LensExtensionDependencies) => (dependencies: LensExtensionDependencies) =>
(ExtensionClass: LensExtensionConstructor, extension: InstalledExtension, updateChecker?: LensExtensionUpdateChecker) => { (ExtensionClass: LensExtensionConstructor, extension: InstalledExtension) => {
const instance = new ExtensionClass(extension, updateChecker); const instance = new ExtensionClass(extension);
instance[setLensExtensionDependencies](dependencies); instance[setLensExtensionDependencies](dependencies);

View File

@ -27,7 +27,7 @@ const logModule = "[EXTENSIONS-LOADER]";
interface Dependencies { interface Dependencies {
updateExtensionsState: (extensionsState: Record<LensExtensionId, LensExtensionState>) => void updateExtensionsState: (extensionsState: Record<LensExtensionId, LensExtensionState>) => void
createExtensionInstance: (ExtensionClass: LensExtensionConstructor, extension: InstalledExtension, updateChecker: LensExtensionUpdateChecker) => LensExtension, createExtensionInstance: (ExtensionClass: LensExtensionConstructor, extension: InstalledExtension) => LensExtension,
} }
export interface ExtensionLoading { export interface ExtensionLoading {
@ -354,8 +354,10 @@ export class ExtensionLoader {
// const instance = new LensExtensionClass(extension, this.extensionUpdateChecker); // const instance = new LensExtensionClass(extension, this.extensionUpdateChecker);
const instance = this.dependencies.createExtensionInstance( const instance = this.dependencies.createExtensionInstance(
LensExtensionClass, LensExtensionClass,
extension, {
this.extensionUpdateChecker, ...extension,
updateChecker: this.extensionUpdateChecker
}
); );
this.instances.set(extId, instance); this.instances.set(extId, instance);

View File

@ -45,7 +45,7 @@ export class LensExtension {
[Disposers] = disposer(); [Disposers] = disposer();
constructor({ id, manifest, manifestPath, isBundled }: InstalledExtension, updateChecker?: LensExtensionUpdateChecker) { constructor({ id, manifest, manifestPath, isBundled, updateChecker }: InstalledExtension) {
makeObservable(this); makeObservable(this);
this.id = id; this.id = id;
this.manifest = manifest; this.manifest = manifest;

View File

@ -22,8 +22,6 @@ export class BundledExtensionsUpdater extends ExtensionUpdater {
this.dependencies.ipcRenderer.on(UpdateBundledExtension, async (event, extensionId: string) => { this.dependencies.ipcRenderer.on(UpdateBundledExtension, async (event, extensionId: string) => {
const extension = this.dependencies.extensions.find(extension => extension.id == extensionId); const extension = this.dependencies.extensions.find(extension => extension.id == extensionId);
console.log({extension})
if (extension?.isBundled && extension?.availableUpdate) { if (extension?.isBundled && extension?.availableUpdate) {
try { try {
await this.update(extension); await this.update(extension);