diff --git a/packages/metrics/index.ts b/packages/metrics/index.ts index 03581af597..4babe7bd27 100644 --- a/packages/metrics/index.ts +++ b/packages/metrics/index.ts @@ -3,79 +3,4 @@ * Licensed under MIT License. See LICENSE in root directory for more information. */ -import type React from "react"; -import { getInjectionToken } from "@ogre-tools/injectable"; - -export type ClusterOverviewUIBlock = { - id: string; - Component: React.ElementType; - orderNumber: number; -}; - -// this should be moved to cluster-overview package when there is one -export const clusterOverviewUIBlockInjectionToken = getInjectionToken({ - id: "cluster-overview-ui-block-injection-token", -}); - -export type KubeObjectDetailMetricsComponentProps = { - object: any; -}; - -export type KubeObjectDetailMetrics = { - id: string; - Component: React.ComponentType; -}; - -export const podDetailsMetricsInjectionToken = getInjectionToken({ - id: "pod-details-metrics-injection-token", -}); - -export const deploymentDetailsMetricsInjectionToken = getInjectionToken({ - id: "deployment-details-metrics-injection-token", -}); - -export const nodeDetailsMetricsInjectionToken = getInjectionToken({ - id: "node-details-metrics-injection-token", -}); - -export const replicaSetDetailsMetricsInjectionToken = getInjectionToken({ - id: "replica-set-details-metrics-injection-token", -}); - -export const persistentVolumeClaimDetailsMetricsInjectionToken = getInjectionToken({ - id: "persistent-volume-claim-details-metrics-injection-token", -}); - -export const statefulSetDetailsMetricsInjectionToken = getInjectionToken({ - id: "stateful-set-details-metrics-injection-token", -}); - -export const namespaceDetailsMetricsInjectionToken = getInjectionToken({ - id: "namespace-details-metrics-injection-token", -}); - -export const jobDetailsMetricsInjectionToken = getInjectionToken({ - id: "job-details-metrics-injection-token", -}); - -export const daemonSetDetailsMetricsInjectionToken = getInjectionToken({ - id: "daemon-set-details-metrics-injection-token", -}); - -export const ingressDetailsMetricsInjectionToken = getInjectionToken({ - id: "ingress-details-metrics-injection-token", -}); - -export interface PodDetailsContainerMetricsComponentProps { - container: any; - pod: any; -} - -export interface PodDetailsContainerMetricsComponent { - id: string; - Component: React.ComponentType; -} - -export const podDetailsContainerMetricsInjectionToken = getInjectionToken({ - id: "pod-details-container-metrics-injection-token", -}); +export * from "./src/tokens"; diff --git a/packages/metrics/package.json b/packages/metrics/package.json index 52c675ea1b..e5801792b7 100644 --- a/packages/metrics/package.json +++ b/packages/metrics/package.json @@ -32,6 +32,7 @@ "lint:fix": "lens-lint --fix" }, "peerDependencies": { + "@k8slens/kube-object": "^1.0.0-alpha.1", "@ogre-tools/injectable": "^15.1.2", "react": "^17.0.2" }, diff --git a/packages/metrics/src/tokens.ts b/packages/metrics/src/tokens.ts new file mode 100644 index 0000000000..fc7c2b6805 --- /dev/null +++ b/packages/metrics/src/tokens.ts @@ -0,0 +1,97 @@ +/** + * Copyright (c) OpenLens Authors. All rights reserved. + * Licensed under MIT License. See LICENSE in root directory for more information. + */ + +import type React from "react"; +import { getInjectionToken } from "@ogre-tools/injectable"; +import type { + Container, + DaemonSet, + Deployment, + Ingress, + Job, + KubeObject, + Namespace, + Node, + PersistentVolumeClaim, + Pod, + ReplicaSet, + StatefulSet, +} from "@k8slens/kube-object"; + +export type ClusterOverviewUIBlock = { + id: string; + Component: React.ElementType; + orderNumber: number; +}; + +// this should be moved to cluster-overview package when there is one +export const clusterOverviewUIBlockInjectionToken = getInjectionToken({ + id: "cluster-overview-ui-block-injection-token", +}); + +export type KubeObjectDetailMetricsComponentProps = { + object: K; +}; + +export type KubeObjectDetailMetrics = { + id: string; + Component: React.ComponentType>; +}; + +export const podDetailsMetricsInjectionToken = getInjectionToken>({ + id: "pod-details-metrics-injection-token", +}); + +export const deploymentDetailsMetricsInjectionToken = getInjectionToken>({ + id: "deployment-details-metrics-injection-token", +}); + +export const nodeDetailsMetricsInjectionToken = getInjectionToken>({ + id: "node-details-metrics-injection-token", +}); + +export const replicaSetDetailsMetricsInjectionToken = getInjectionToken>({ + id: "replica-set-details-metrics-injection-token", +}); + +export const persistentVolumeClaimDetailsMetricsInjectionToken = getInjectionToken< + KubeObjectDetailMetrics +>({ + id: "persistent-volume-claim-details-metrics-injection-token", +}); + +export const statefulSetDetailsMetricsInjectionToken = getInjectionToken>({ + id: "stateful-set-details-metrics-injection-token", +}); + +export const namespaceDetailsMetricsInjectionToken = getInjectionToken>({ + id: "namespace-details-metrics-injection-token", +}); + +export const jobDetailsMetricsInjectionToken = getInjectionToken>({ + id: "job-details-metrics-injection-token", +}); + +export const daemonSetDetailsMetricsInjectionToken = getInjectionToken>({ + id: "daemon-set-details-metrics-injection-token", +}); + +export const ingressDetailsMetricsInjectionToken = getInjectionToken>({ + id: "ingress-details-metrics-injection-token", +}); + +export interface PodDetailsContainerMetricsComponentProps { + container: Container; + pod: Pod; +} + +export interface PodDetailsContainerMetricsComponent { + id: string; + Component: React.ComponentType; +} + +export const podDetailsContainerMetricsInjectionToken = getInjectionToken({ + id: "pod-details-container-metrics-injection-token", +});