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

extensions-api -- better console output for extension class logs

Signed-off-by: Roman <ixrock@gmail.com>
This commit is contained in:
Roman 2020-09-06 22:39:51 +03:00
parent 95db1b3b11
commit 7ebac4d151
2 changed files with 9 additions and 7 deletions

View File

@ -57,13 +57,13 @@ export class ExtensionStore extends BaseStore<ExtensionStoreModel> {
} }
autoEnableOnLoad(getLensRuntimeEnv: () => LensRuntimeRendererEnv, { delay = 0 } = {}) { autoEnableOnLoad(getLensRuntimeEnv: () => LensRuntimeRendererEnv, { delay = 0 } = {}) {
logger.info('[EXTENSIONS-STORE]: enabled auto-activation all installed extensions'); logger.info('[EXTENSIONS-STORE]: auto-activation loaded extensions: ON');
return reaction(() => this.installed.toJS(), installedExtensions => { return reaction(() => this.installed.toJS(), installedExtensions => {
installedExtensions.forEach(({ extensionModule, manifest, manifestPath }) => { installedExtensions.forEach(({ extensionModule, manifest, manifestPath }) => {
let instance = this.getById(manifestPath); let instance = this.getById(manifestPath);
if (!instance) { if (!instance) {
const LensExtensionClass = extensionModule.default; const LensExtensionClass = extensionModule.default;
instance = new LensExtensionClass({ ...manifest }, manifest); instance = new LensExtensionClass({ ...manifest, manifestPath, id: manifestPath }, manifest);
instance.enable(getLensRuntimeEnv()); instance.enable(getLensRuntimeEnv());
this.extensions.set(manifestPath, instance); // save this.extensions.set(manifestPath, instance); // save
} }

View File

@ -1,7 +1,7 @@
import type { ExtensionModel } from "./extension-store"; import type { ExtensionModel } from "./extension-store";
import type { LensRuntimeRendererEnv } from "./lens-runtime"; import type { LensRuntimeRendererEnv } from "./lens-runtime";
import { readJsonSync } from "fs-extra"; import { readJsonSync } from "fs-extra";
import { action, observable } from "mobx"; import { action, observable, toJS } from "mobx";
import extensionManifest from "./example-extension/package.json" import extensionManifest from "./example-extension/package.json"
import logger from "../main/logger"; import logger from "../main/logger";
@ -40,13 +40,13 @@ export class LensExtension implements ExtensionModel {
async enable(runtime: LensRuntimeRendererEnv) { async enable(runtime: LensRuntimeRendererEnv) {
this.isEnabled = true; this.isEnabled = true;
this.runtime = runtime; this.runtime = runtime;
console.log(`[EXTENSION]: enable ${this.name}@${this.version}`, this.getMeta()); console.log(`[EXTENSION]: enabled ${this.name}@${this.version}`, this.getMeta());
} }
async disable() { async disable() {
this.isEnabled = false; this.isEnabled = false;
this.runtime = {}; this.runtime = {};
console.log(`[EXTENSION]: disable ${this.name}@${this.version}`, this.getMeta()); console.log(`[EXTENSION]: disabled ${this.name}@${this.version}`, this.getMeta());
} }
// todo // todo
@ -64,13 +64,15 @@ export class LensExtension implements ExtensionModel {
} }
getMeta() { getMeta() {
return { return toJS({
id: this.id, id: this.id,
manifest: this.manifest, manifest: this.manifest,
manifestPath: this.manifestPath, manifestPath: this.manifestPath,
enabled: this.isEnabled, enabled: this.isEnabled,
runtime: this.runtime, runtime: this.runtime,
} }, {
recurseEverything: true
})
} }
toJSON(): ExtensionModel { toJSON(): ExtensionModel {