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

fix!: Use correct typing for Metrics tokens

Signed-off-by: Sebastian Malton <sebastian@malton.name>
This commit is contained in:
Sebastian Malton 2023-04-27 10:37:14 -04:00
parent 80458170ad
commit 8f8f77550f
3 changed files with 99 additions and 76 deletions

View File

@ -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<ClusterOverviewUIBlock>({
id: "cluster-overview-ui-block-injection-token",
});
export type KubeObjectDetailMetricsComponentProps = {
object: any;
};
export type KubeObjectDetailMetrics = {
id: string;
Component: React.ComponentType<KubeObjectDetailMetricsComponentProps>;
};
export const podDetailsMetricsInjectionToken = getInjectionToken<KubeObjectDetailMetrics>({
id: "pod-details-metrics-injection-token",
});
export const deploymentDetailsMetricsInjectionToken = getInjectionToken<KubeObjectDetailMetrics>({
id: "deployment-details-metrics-injection-token",
});
export const nodeDetailsMetricsInjectionToken = getInjectionToken<KubeObjectDetailMetrics>({
id: "node-details-metrics-injection-token",
});
export const replicaSetDetailsMetricsInjectionToken = getInjectionToken<KubeObjectDetailMetrics>({
id: "replica-set-details-metrics-injection-token",
});
export const persistentVolumeClaimDetailsMetricsInjectionToken = getInjectionToken<KubeObjectDetailMetrics>({
id: "persistent-volume-claim-details-metrics-injection-token",
});
export const statefulSetDetailsMetricsInjectionToken = getInjectionToken<KubeObjectDetailMetrics>({
id: "stateful-set-details-metrics-injection-token",
});
export const namespaceDetailsMetricsInjectionToken = getInjectionToken<KubeObjectDetailMetrics>({
id: "namespace-details-metrics-injection-token",
});
export const jobDetailsMetricsInjectionToken = getInjectionToken<KubeObjectDetailMetrics>({
id: "job-details-metrics-injection-token",
});
export const daemonSetDetailsMetricsInjectionToken = getInjectionToken<KubeObjectDetailMetrics>({
id: "daemon-set-details-metrics-injection-token",
});
export const ingressDetailsMetricsInjectionToken = getInjectionToken<KubeObjectDetailMetrics>({
id: "ingress-details-metrics-injection-token",
});
export interface PodDetailsContainerMetricsComponentProps {
container: any;
pod: any;
}
export interface PodDetailsContainerMetricsComponent {
id: string;
Component: React.ComponentType<PodDetailsContainerMetricsComponentProps>;
}
export const podDetailsContainerMetricsInjectionToken = getInjectionToken<PodDetailsContainerMetricsComponent>({
id: "pod-details-container-metrics-injection-token",
});
export * from "./src/tokens";

View File

@ -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"
},

View File

@ -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<ClusterOverviewUIBlock>({
id: "cluster-overview-ui-block-injection-token",
});
export type KubeObjectDetailMetricsComponentProps<K extends KubeObject> = {
object: K;
};
export type KubeObjectDetailMetrics<K extends KubeObject> = {
id: string;
Component: React.ComponentType<KubeObjectDetailMetricsComponentProps<K>>;
};
export const podDetailsMetricsInjectionToken = getInjectionToken<KubeObjectDetailMetrics<Pod>>({
id: "pod-details-metrics-injection-token",
});
export const deploymentDetailsMetricsInjectionToken = getInjectionToken<KubeObjectDetailMetrics<Deployment>>({
id: "deployment-details-metrics-injection-token",
});
export const nodeDetailsMetricsInjectionToken = getInjectionToken<KubeObjectDetailMetrics<Node>>({
id: "node-details-metrics-injection-token",
});
export const replicaSetDetailsMetricsInjectionToken = getInjectionToken<KubeObjectDetailMetrics<ReplicaSet>>({
id: "replica-set-details-metrics-injection-token",
});
export const persistentVolumeClaimDetailsMetricsInjectionToken = getInjectionToken<
KubeObjectDetailMetrics<PersistentVolumeClaim>
>({
id: "persistent-volume-claim-details-metrics-injection-token",
});
export const statefulSetDetailsMetricsInjectionToken = getInjectionToken<KubeObjectDetailMetrics<StatefulSet>>({
id: "stateful-set-details-metrics-injection-token",
});
export const namespaceDetailsMetricsInjectionToken = getInjectionToken<KubeObjectDetailMetrics<Namespace>>({
id: "namespace-details-metrics-injection-token",
});
export const jobDetailsMetricsInjectionToken = getInjectionToken<KubeObjectDetailMetrics<Job>>({
id: "job-details-metrics-injection-token",
});
export const daemonSetDetailsMetricsInjectionToken = getInjectionToken<KubeObjectDetailMetrics<DaemonSet>>({
id: "daemon-set-details-metrics-injection-token",
});
export const ingressDetailsMetricsInjectionToken = getInjectionToken<KubeObjectDetailMetrics<Ingress>>({
id: "ingress-details-metrics-injection-token",
});
export interface PodDetailsContainerMetricsComponentProps {
container: Container;
pod: Pod;
}
export interface PodDetailsContainerMetricsComponent {
id: string;
Component: React.ComponentType<PodDetailsContainerMetricsComponentProps>;
}
export const podDetailsContainerMetricsInjectionToken = getInjectionToken<PodDetailsContainerMetricsComponent>({
id: "pod-details-container-metrics-injection-token",
});