1
0
mirror of https://github.com/lensapp/lens.git synced 2025-05-20 05:10:56 +00:00
lens/src/extensions/registries/resource-status-registry.ts
Lauri Nevala db9a6b1e41 Implement API ResourceStatusText extension
Signed-off-by: Lauri Nevala <lauri.nevala@gmail.com>
2020-11-04 14:51:48 +02:00

37 lines
919 B
TypeScript

import { KubeObject } from "../renderer-api/k8s-api";
import { BaseRegistry } from "./base-registry";
export enum ResourceStatusColor {
INFO = "info",
SUCCESS = "success",
ERROR = "error"
}
export abstract class ResourceStatusResolver {
protected object: KubeObject
constructor(object: KubeObject) {
this.object = object
}
public abstract getStatusText(): string
public abstract getStatusColor(): string
}
export interface ResourceStatusRegistration {
kind: string;
apiVersions: string[];
resolver: (object: KubeObject) => ResourceStatusResolver;
}
export class ResourceStatusRegistry extends BaseRegistry<ResourceStatusRegistration> {
getItemsForKind(kind: string, apiVersion: string) {
return this.items.filter((item) => {
return item.kind === kind && item.apiVersions.includes(apiVersion)
})
}
}
export const resourceStatusRegistry = new ResourceStatusRegistry();