From c2f157ab49317a49b7b7cd93169668de8d3ba1a6 Mon Sep 17 00:00:00 2001 From: worksofliam Date: Thu, 16 Jan 2025 15:59:29 -0500 Subject: [PATCH] Remove last dep on vscode for component API Signed-off-by: worksofliam --- src/api/components/manager.ts | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/src/api/components/manager.ts b/src/api/components/manager.ts index 0b8ebd56a..3ce8b5f20 100644 --- a/src/api/components/manager.ts +++ b/src/api/components/manager.ts @@ -1,12 +1,23 @@ -import vscode from "vscode"; + import IBMi from "../IBMi"; import { ComponentState, IBMiComponent } from "./component"; +interface ExtensionContextI { + extension: { + id: string + } +} + export class ComponentRegistry { private readonly components: Map = new Map; - public registerComponent(context: vscode.ExtensionContext, component: IBMiComponent) { - const key = context.extension.id; + public registerComponent(context: ExtensionContextI|string, component: IBMiComponent) { + const key = typeof context === `object` ? context.extension.id : context; + + if (typeof key !== `string`) { + throw new Error(`Invalid extension context.`); + } + const extensionComponents = this.components.get(key); if (extensionComponents) { extensionComponents.push(component);