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

Export more things for the extension API (#7088)

* Export more things for the extension API

Signed-off-by: Sebastian Malton <sebastian@malton.name>

* Provide more insight into the dist-tag computation

Signed-off-by: Sebastian Malton <sebastian@malton.name>

* Fix type errors

Signed-off-by: Sebastian Malton <sebastian@malton.name>

---------

Signed-off-by: Sebastian Malton <sebastian@malton.name>
This commit is contained in:
Sebastian Malton 2023-02-02 05:28:56 -08:00 committed by GitHub
parent 7a57a89194
commit 6d2efb99e7
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
9 changed files with 68 additions and 75 deletions

View File

@ -38,7 +38,9 @@ jobs:
- name: Publish NPM packages - name: Publish NPM packages
run: | run: |
npm config set '//registry.npmjs.org/:_authToken' "${NPM_TOKEN}" npm config set '//registry.npmjs.org/:_authToken' "${NPM_TOKEN}"
DIST_TAG=$(cat lerna.json | jq '.version' --raw-output | xargs npm exec -- @k8slens/semver --prerelease 0) VERSION=$(cat lerna.json | jq '.version' --raw-output)
echo ${VERSION}
DIST_TAG=$(npm exec -- @k8slens/semver --prerelease 0 ${VERSION})
yarn lerna \ yarn lerna \
publish from-package \ publish from-package \
--no-push \ --no-push \

View File

@ -3,31 +3,21 @@
* Licensed under MIT License. See LICENSE in root directory for more information. * Licensed under MIT License. See LICENSE in root directory for more information.
*/ */
// APIs
import { App } from "./app";
import * as EventBus from "./event-bus";
import * as Store from "./stores";
import { Util } from "./utils";
import * as Catalog from "./catalog";
import * as Types from "./types";
import * as Proxy from "./proxy";
import loggerInjectable from "../../common/logger.injectable"; import loggerInjectable from "../../common/logger.injectable";
import { asLegacyGlobalForExtensionApi } from "../as-legacy-globals-for-extension-api/as-legacy-global-object-for-extension-api"; import { asLegacyGlobalForExtensionApi } from "../as-legacy-globals-for-extension-api/as-legacy-global-object-for-extension-api";
import type { Logger } from "../../common/logger";
import type { LensExtension, LensExtensionManifest } from "../lens-extension";
const logger = asLegacyGlobalForExtensionApi(loggerInjectable); // APIs
export { App } from "./app";
export * as EventBus from "./event-bus";
export * as Store from "./stores";
export * as Util from "./utils";
export * as Catalog from "./catalog";
export * as Types from "./types";
export * as Proxy from "./proxy";
export { export type { Logger } from "../../common/logger";
App, export type { LensExtension, LensExtensionManifest } from "../lens-extension";
EventBus, export type { InstalledExtension } from "../extension-discovery/extension-discovery";
Catalog, export type { PackageJson } from "type-fest";
Store,
Types, export const logger = asLegacyGlobalForExtensionApi(loggerInjectable);
Util,
logger,
Proxy,
Logger,
LensExtension,
LensExtensionManifest,
};

View File

@ -108,13 +108,16 @@ export type { CreateKubeApiForLocalClusterConfig as ILocalKubeApiConfig } from "
export { export {
KubeObject, KubeObject,
KubeStatus, KubeStatus,
type OwnerReference, } from "../../common/k8s-api/kube-object";
type KubeObjectMetadata, export type {
type NamespaceScopedMetadata, OwnerReference,
type ClusterScopedMetadata, KubeObjectMetadata,
type BaseKubeJsonApiObjectMetadata, NamespaceScopedMetadata,
type KubeJsonApiObjectMetadata, ClusterScopedMetadata,
type KubeStatusData, BaseKubeJsonApiObjectMetadata,
KubeJsonApiObjectMetadata,
KubeStatusData,
KubeJsonApiDataFor,
} from "../../common/k8s-api/kube-object"; } from "../../common/k8s-api/kube-object";
export type { export type {
@ -177,11 +180,11 @@ export abstract class KubeObjectStore<
} }
} }
export { export type {
type JsonPatch, JsonPatch,
type KubeObjectStoreLoadAllParams, KubeObjectStoreLoadAllParams,
type KubeObjectStoreLoadingParams, KubeObjectStoreLoadingParams,
type KubeObjectStoreSubscribeParams, KubeObjectStoreSubscribeParams,
} from "../../common/k8s-api/kube-object.store"; } from "../../common/k8s-api/kube-object.store";
/** /**

View File

@ -1,17 +0,0 @@
/**
* Copyright (c) OpenLens Authors. All rights reserved.
* Licensed under MIT License. See LICENSE in root directory for more information.
*/
export type { StatusBarRegistration } from "../../renderer/components/status-bar/status-bar-registration";
export type { KubeObjectMenuRegistration, KubeObjectMenuComponents } from "../../renderer/components/kube-object-menu/kube-object-menu-registration";
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 "../../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";
export type { TrayMenuRegistration } from "../../main/tray/tray-menu-registration";
export type { MenuRegistration } from "../../features/application-menu/main/menu-registration";

View File

@ -3,8 +3,21 @@
* Licensed under MIT License. See LICENSE in root directory for more information. * Licensed under MIT License. See LICENSE in root directory for more information.
*/ */
export type IpcMainInvokeEvent = Electron.IpcMainInvokeEvent; export type IpcMainInvokeEvent = Electron.IpcMainInvokeEvent;
export type IpcRendererEvent = Electron.IpcRendererEvent; export type IpcRendererEvent = Electron.IpcRendererEvent;
export type IpcMainEvent = Electron.IpcMainEvent; export type IpcMainEvent = Electron.IpcMainEvent;
export * from "./registrations"; export type { StatusBarRegistration } from "../../renderer/components/status-bar/status-bar-registration";
export type { KubeObjectMenuRegistration, KubeObjectMenuComponents } from "../../renderer/components/kube-object-menu/kube-object-menu-registration";
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 "../../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";
export type { TrayMenuRegistration } from "../../main/tray/tray-menu-registration";
export type { MenuRegistration } from "../../features/application-menu/main/menu-registration";

View File

@ -7,20 +7,23 @@ import openLinkInBrowserInjectable from "../../common/utils/open-link-in-browser
import buildVersionInjectable from "../../main/vars/build-version/build-version.injectable"; import buildVersionInjectable from "../../main/vars/build-version/build-version.injectable";
import { asLegacyGlobalFunctionForExtensionApi } from "../as-legacy-globals-for-extension-api/as-legacy-global-function-for-extension-api"; import { asLegacyGlobalFunctionForExtensionApi } from "../as-legacy-globals-for-extension-api/as-legacy-global-function-for-extension-api";
import { getLegacyGlobalDiForExtensionApi } from "../as-legacy-globals-for-extension-api/legacy-global-di-for-extension-api"; import { getLegacyGlobalDiForExtensionApi } from "../as-legacy-globals-for-extension-api/legacy-global-di-for-extension-api";
import { Singleton } from "../../common/utils";
import { prevDefault, stopPropagation } from "../../renderer/utils/prevDefault";
import { cssNames } from "../../renderer/utils/cssNames";
export const Util = { export { Singleton } from "../../common/utils";
Singleton, export { prevDefault, stopPropagation } from "../../renderer/utils/prevDefault";
prevDefault,
stopPropagation, export type { IClassName, IgnoredClassNames } from "../../renderer/utils";
cssNames, export { cssNames } from "../../renderer/utils/cssNames";
openExternal: asLegacyGlobalFunctionForExtensionApi(openLinkInBrowserInjectable),
openBrowser: asLegacyGlobalFunctionForExtensionApi(openLinkInBrowserInjectable), export type { OpenLinkInBrowser } from "../../common/utils/open-link-in-browser.injectable";
getAppVersion: () => {
export const openExternal = asLegacyGlobalFunctionForExtensionApi(openLinkInBrowserInjectable);
export const openBrowser = asLegacyGlobalFunctionForExtensionApi(openLinkInBrowserInjectable);
export const getAppVersion = () => {
const di = getLegacyGlobalDiForExtensionApi(); const di = getLegacyGlobalDiForExtensionApi();
return di.inject(buildVersionInjectable).get(); return di.inject(buildVersionInjectable).get();
}, };
} as const;
export { disposer } from "../../common/utils";
export type { Disposer, Disposable, ExtendableDisposer } from "../../common/utils";

View File

@ -8,7 +8,7 @@ import { action, computed, makeObservable, observable } from "mobx";
import type { PackageJson } from "type-fest"; import type { PackageJson } from "type-fest";
import { disposer } from "../common/utils"; import { disposer } from "../common/utils";
import type { LensExtensionDependencies } from "./lens-extension-set-dependencies"; import type { LensExtensionDependencies } from "./lens-extension-set-dependencies";
import type { ProtocolHandlerRegistration } from "./common-api/registrations"; import type { ProtocolHandlerRegistration } from "../common/protocol-handler/registration";
export type LensExtensionId = string; // path to manifest (package.json) export type LensExtensionId = string; // path to manifest (package.json)
export type LensExtensionConstructor = new (...args: ConstructorParameters<typeof LensExtension>) => LensExtension; export type LensExtensionConstructor = new (...args: ConstructorParameters<typeof LensExtension>) => LensExtension;

View File

@ -29,7 +29,8 @@ import type { KubeObjectDetailRegistration } from "../renderer/components/kube-o
import type { ClusterFrameChildComponent } from "../renderer/frames/cluster-frame/cluster-frame-child-component-injection-token"; 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 { EntitySettingRegistration } from "../renderer/components/+entity-settings/extension-registrator.injectable";
import type { CatalogEntityDetailRegistration } from "../renderer/components/+catalog/entity-details/token"; import type { CatalogEntityDetailRegistration } from "../renderer/components/+catalog/entity-details/token";
import type { ClusterPageMenuRegistration, PageRegistration } from "./common-api/registrations"; import type { PageRegistration } from "../renderer/routes/page-registration";
import type { ClusterPageMenuRegistration } from "../renderer/components/layout/cluster-page-menu";
export class LensRendererExtension extends LensExtension<LensRendererExtensionDependencies> { export class LensRendererExtension extends LensExtension<LensRendererExtensionDependencies> {
globalPages: PageRegistration[] = []; globalPages: PageRegistration[] = [];

View File

@ -6,9 +6,7 @@
import { iter } from "../../common/utils"; import { iter } from "../../common/utils";
export type IgnoredClassNames = number | symbol | Function; export type IgnoredClassNames = number | symbol | Function;
export type IClassName = string | string[] | Record<string, any> | undefined | null | false | IgnoredClassNames;
export type IClassName = string | string[] | IClassNameMap | undefined | null | false | IgnoredClassNames;
export type IClassNameMap = object;
export function cssNames(...classNames: IClassName[]): string { export function cssNames(...classNames: IClassName[]): string {
const classNamesEnabled = new Map<string, boolean>(); const classNamesEnabled = new Map<string, boolean>();