From d5add4ff810b101f8b17ba50f2ad538cdcb8c13a Mon Sep 17 00:00:00 2001 From: Sebastian Malton Date: Mon, 28 Nov 2022 17:11:22 -0500 Subject: [PATCH] Remove the last reminents of BaseRegistry Signed-off-by: Sebastian Malton --- .../protocol-handler/registration.ts} | 0 src/common/protocol-handler/router.ts | 2 +- src/extensions/common-api/registrations.ts | 6 +-- src/extensions/lens-extension.ts | 2 +- src/extensions/lens-renderer-extension.ts | 8 ++-- src/extensions/registries/base-registry.ts | 46 ------------------- src/extensions/registries/index.ts | 10 ---- .../components/layout/cluster-page-menu.ts} | 5 +- .../routes/page-registration.ts} | 2 +- 9 files changed, 12 insertions(+), 69 deletions(-) rename src/{extensions/registries/protocol-handler.ts => common/protocol-handler/registration.ts} (100%) delete mode 100644 src/extensions/registries/base-registry.ts delete mode 100644 src/extensions/registries/index.ts rename src/{extensions/registries/page-menu-registry.ts => renderer/components/layout/cluster-page-menu.ts} (76%) rename src/{extensions/registries/page-registry.ts => renderer/routes/page-registration.ts} (94%) diff --git a/src/extensions/registries/protocol-handler.ts b/src/common/protocol-handler/registration.ts similarity index 100% rename from src/extensions/registries/protocol-handler.ts rename to src/common/protocol-handler/registration.ts diff --git a/src/common/protocol-handler/router.ts b/src/common/protocol-handler/router.ts index 3204a5356c..8c9915b287 100644 --- a/src/common/protocol-handler/router.ts +++ b/src/common/protocol-handler/router.ts @@ -13,7 +13,7 @@ import { RoutingError, RoutingErrorType } from "./error"; import type { ExtensionsStore } from "../../extensions/extensions-store/extensions-store"; import type { ExtensionLoader } from "../../extensions/extension-loader"; import type { LensExtension } from "../../extensions/lens-extension"; -import type { RouteHandler, RouteParams } from "../../extensions/registries/protocol-handler"; +import type { RouteHandler, RouteParams } from "./registration"; import { when } from "mobx"; import { ipcRenderer } from "electron"; import type { Logger } from "../logger"; diff --git a/src/extensions/common-api/registrations.ts b/src/extensions/common-api/registrations.ts index 4bfda25170..50a9262419 100644 --- a/src/extensions/common-api/registrations.ts +++ b/src/extensions/common-api/registrations.ts @@ -7,9 +7,9 @@ export type { KubeObjectMenuRegistration, KubeObjectMenuComponents } from "../.. export type { AppPreferenceRegistration, AppPreferenceComponents } from "../../features/preferences/renderer/compliance-for-legacy-extension-api/app-preference-registration"; export type { KubeObjectDetailRegistration, KubeObjectDetailComponents } from "../../renderer/components/kube-object-details/kube-object-detail-registration"; export type { KubeObjectStatusRegistration } from "../../renderer/components/kube-object-status-icon/kube-object-status-registration"; -export type { PageRegistration, RegisteredPage, PageParams, PageComponentProps, PageComponents, PageTarget } from "../registries/page-registry"; -export type { ClusterPageMenuRegistration, ClusterPageMenuComponents } from "../registries/page-menu-registry"; -export type { ProtocolHandlerRegistration, RouteParams as ProtocolRouteParams, RouteHandler as ProtocolRouteHandler } from "../registries/protocol-handler"; +export type { PageRegistration, RegisteredPage, PageParams, PageComponentProps, PageComponents, PageTarget } from "../../renderer/routes/page-registration"; +export type { ClusterPageMenuRegistration, ClusterPageMenuComponents } from "../../renderer/components/layout/cluster-page-menu"; +export type { ProtocolHandlerRegistration, RouteParams as ProtocolRouteParams, RouteHandler as ProtocolRouteHandler } from "../../common/protocol-handler/registration"; export type { CustomCategoryViewProps, CustomCategoryViewComponents, CustomCategoryViewRegistration } from "../../renderer/components/+catalog/custom-views"; export type { ShellEnvModifier, ShellEnvContext } from "../../main/shell-session/shell-env-modifier/shell-env-modifier-registration"; export type { KubeObjectContextMenuItem, KubeObjectOnContextMenuOpenContext, KubeObjectOnContextMenuOpen, KubeObjectHandlers, KubeObjectHandlerRegistration } from "../../renderer/kube-object/handler"; diff --git a/src/extensions/lens-extension.ts b/src/extensions/lens-extension.ts index 56c71a87bf..4e15d0f3fe 100644 --- a/src/extensions/lens-extension.ts +++ b/src/extensions/lens-extension.ts @@ -6,10 +6,10 @@ import type { InstalledExtension } from "./extension-discovery/extension-discovery"; import { action, computed, makeObservable, observable } from "mobx"; import logger from "../main/logger"; -import type { ProtocolHandlerRegistration } from "./registries"; import type { PackageJson } from "type-fest"; import { disposer } from "../common/utils"; import type { LensExtensionDependencies } from "./lens-extension-set-dependencies"; +import type { ProtocolHandlerRegistration } from "./common-api/registrations"; export type LensExtensionId = string; // path to manifest (package.json) export type LensExtensionConstructor = new (...args: ConstructorParameters) => LensExtension; diff --git a/src/extensions/lens-renderer-extension.ts b/src/extensions/lens-renderer-extension.ts index 09d2157d0c..89cd5dbee5 100644 --- a/src/extensions/lens-renderer-extension.ts +++ b/src/extensions/lens-renderer-extension.ts @@ -3,7 +3,6 @@ * Licensed under MIT License. See LICENSE in root directory for more information. */ -import type * as registries from "./registries"; import { Disposers, LensExtension, lensExtensionDependencies } from "./lens-extension"; import type { CatalogEntity } from "../common/catalog"; import type { Disposer } from "../common/utils"; @@ -31,11 +30,12 @@ import type { KubeObjectDetailRegistration } from "../renderer/components/kube-o import type { ClusterFrameChildComponent } from "../renderer/frames/cluster-frame/cluster-frame-child-component-injection-token"; import type { EntitySettingRegistration } from "../renderer/components/+entity-settings/extension-registrator.injectable"; import type { CatalogEntityDetailRegistration } from "../renderer/components/+catalog/entity-details/token"; +import type { ClusterPageMenuRegistration, PageRegistration } from "./common-api/registrations"; export class LensRendererExtension extends LensExtension { - globalPages: registries.PageRegistration[] = []; - clusterPages: registries.PageRegistration[] = []; - clusterPageMenus: registries.ClusterPageMenuRegistration[] = []; + globalPages: PageRegistration[] = []; + clusterPages: PageRegistration[] = []; + clusterPageMenus: ClusterPageMenuRegistration[] = []; clusterFrameComponents: ClusterFrameChildComponent[] = []; kubeObjectStatusTexts: KubeObjectStatusRegistration[] = []; appPreferences: AppPreferenceRegistration[] = []; diff --git a/src/extensions/registries/base-registry.ts b/src/extensions/registries/base-registry.ts deleted file mode 100644 index b0c833f295..0000000000 --- a/src/extensions/registries/base-registry.ts +++ /dev/null @@ -1,46 +0,0 @@ -/** - * Copyright (c) OpenLens Authors. All rights reserved. - * Licensed under MIT License. See LICENSE in root directory for more information. - */ - -// Base class for extensions-api registries -import { action, observable, makeObservable } from "mobx"; -import type { Disposer } from "../../common/utils"; -import { Singleton } from "../../common/utils"; -import type { LensExtension } from "../lens-extension"; - -export class BaseRegistry extends Singleton { - private items = observable.map([], { deep: false }); - - constructor() { - super(); - makeObservable(this); - } - - getItems(): I[] { - return Array.from(this.items.values()); - } - - @action - add(items: T | T[], extension?: LensExtension): Disposer { - const itemArray = [items].flat() as T[]; - - itemArray.forEach(item => { - this.items.set(item, this.getRegisteredItem(item, extension)); - }); - - return () => this.remove(...itemArray); - } - - // eslint-disable-next-line unused-imports/no-unused-vars-ts - protected getRegisteredItem(item: T, extension?: LensExtension): I { - return item as never; - } - - @action - remove(...items: T[]) { - items.forEach(item => { - this.items.delete(item); - }); - } -} diff --git a/src/extensions/registries/index.ts b/src/extensions/registries/index.ts deleted file mode 100644 index 02251f2fd7..0000000000 --- a/src/extensions/registries/index.ts +++ /dev/null @@ -1,10 +0,0 @@ -/** - * Copyright (c) OpenLens Authors. All rights reserved. - * Licensed under MIT License. See LICENSE in root directory for more information. - */ - -// All registries managed by extensions api - -export * from "./page-registry"; -export * from "./page-menu-registry"; -export * from "./protocol-handler"; diff --git a/src/extensions/registries/page-menu-registry.ts b/src/renderer/components/layout/cluster-page-menu.ts similarity index 76% rename from src/extensions/registries/page-menu-registry.ts rename to src/renderer/components/layout/cluster-page-menu.ts index d083d729c4..7f81ad82b9 100644 --- a/src/extensions/registries/page-menu-registry.ts +++ b/src/renderer/components/layout/cluster-page-menu.ts @@ -3,10 +3,9 @@ * Licensed under MIT License. See LICENSE in root directory for more information. */ -// Extensions-api -> Register page menu items -import type { IconProps } from "../../renderer/components/icon"; +import type { IconProps } from "../icon"; import type React from "react"; -import type { PageTarget } from "./page-registry"; +import type { PageTarget } from "../../routes/page-registration"; import type { IComputedValue } from "mobx"; export interface ClusterPageMenuRegistration { diff --git a/src/extensions/registries/page-registry.ts b/src/renderer/routes/page-registration.ts similarity index 94% rename from src/extensions/registries/page-registry.ts rename to src/renderer/routes/page-registration.ts index 6584b3aa9b..4f9d60ecfe 100644 --- a/src/extensions/registries/page-registry.ts +++ b/src/renderer/routes/page-registration.ts @@ -3,7 +3,7 @@ * Licensed under MIT License. See LICENSE in root directory for more information. */ import type { IComputedValue } from "mobx"; -import type { PageParamInit, PageParam } from "../../renderer/navigation"; +import type { PageParamInit, PageParam } from "../navigation"; // Extensions-api -> Custom page registration