diff --git a/src/extensions/example-extension/example-extension.ts b/src/extensions/example-extension/example-extension.ts index f76533813a..e9ddd2c27f 100644 --- a/src/extensions/example-extension/example-extension.ts +++ b/src/extensions/example-extension/example-extension.ts @@ -1,13 +1,13 @@ -import { LensExtension, LensRendererRuntimeEnv } from "@lens/extensions"; // fixme: map to generated types from "extension-api.d.ts" +import { LensExtension } from "@lens/extensions"; // fixme: map to generated types from "extension-api.d.ts" export default class ExampleExtension extends LensExtension { - async activate(runtime: LensRendererRuntimeEnv): Promise { - await super.activate(runtime); - console.log('Example extension: activate'); + async activate(): Promise { + await super.activate(); + console.warn('EXAMPLE EXTENSION: ACTIVATE'.padStart(10, "-")); } async deactivate(): Promise { - console.log('Example extension: deactivate') + console.warn('EXAMPLE EXTENSION: DEACTIVATE'.padStart(10, "-")) await super.deactivate(); } } diff --git a/src/extensions/extension-api.ts b/src/extensions/extension-api.ts index 1e2a5ab8c2..6271a974ba 100644 --- a/src/extensions/extension-api.ts +++ b/src/extensions/extension-api.ts @@ -1,4 +1,5 @@ // Lens-extensions api developer's kit export type { LensRendererRuntimeEnv } from "./extension-api.runtime"; + export * from "./extension" diff --git a/src/extensions/extension-store.ts b/src/extensions/extension-store.ts index 81eea358ee..8f561b7a89 100644 --- a/src/extensions/extension-store.ts +++ b/src/extensions/extension-store.ts @@ -25,7 +25,7 @@ export interface InstalledExtension { manifest: ExtensionManifest; extensionModule: { [name: string]: any; - default: new (model: T, manifest?: ExtensionManifest) => LensExtension + default: new (model: ExtensionModel, manifest?: ExtensionManifest) => LensExtension } } @@ -75,6 +75,13 @@ export class ExtensionStore extends BaseStore { async loadInstalledExtensions() { const extensions = await this.loadExtensions(this.folderPath); this.installed.replace(extensions.map(ext => [ext.manifestPath, ext])); + + // todo: remove + extensions.forEach(({ extensionModule, manifest }) => { + const LensExtension = extensionModule.default; + const instance = new LensExtension({ ...manifest }, manifest); + instance.activate(); + }) } async loadExtensions(folderPath: string): Promise { diff --git a/src/extensions/extension.ts b/src/extensions/extension.ts index b008528bf0..bc9b3d4aab 100644 --- a/src/extensions/extension.ts +++ b/src/extensions/extension.ts @@ -38,14 +38,12 @@ export class LensExtension implements ExtensionModel { } } - async activate(params: LensRendererRuntimeEnv) { + async activate() { logger.info(`[EXTENSION]: activate ${this.name}@${this.version}`, this.getMeta()); - this.runtime = params; } async deactivate() { logger.info(`[EXTENSION]: deactivate ${this.name}@${this.version}`, this.getMeta()); - this.runtime = null; } async enable() {