UNPKG

@alauda-fe/common

Version:

Alauda frontend team common codes.

123 lines (122 loc) 5.92 kB
/** * @packageDocumentation * @module api */ import { Observable } from 'rxjs'; import { CRYPTO_TYPE, DeepPartial, KubernetesResource, ResourceListParams } from '../core/public-api'; export type K8sResourceDefinition = Readonly<{ type: string; apiGroup?: string; apiVersion?: string; }>; export type K8sResourceDefinitions = Readonly<Record<string, K8sResourceDefinition>>; export interface ApiDefinitionBaseParams { definition: K8sResourceDefinition; } export interface ApiTypeBaseParams<T extends string> { /** * @deprecated 请使用 definition 参数 */ type: T; } export type ApiBaseParams<T extends string> = { notifyOnError?: boolean; onlyMetadata?: boolean; customAccept?: string; crypto?: CRYPTO_TYPE; } & (ApiDefinitionBaseParams | ApiTypeBaseParams<T>); export type ResourceBaseParams<T extends string> = ApiBaseParams<T> & { name: string; }; export type ResourceListBaseParams<T extends string> = ApiBaseParams<T> & { queryParams?: ResourceListParams; }; export interface WatchApiParams { active$?: Observable<boolean>; keepalive?: boolean; downgradePolling?: number; retry?: true | { count?: number; delay?: number; }; } export interface GlobalResourceBaseParams { namespaced?: boolean; namespace?: string; } export type GlobalResourceParams<T extends string> = ResourceBaseParams<T> & GlobalResourceBaseParams; export type WatchGlobalResourceParams<T extends string> = GlobalResourceParams<T> & WatchApiParams; export type GlobalResourceListParams<T extends string> = ResourceListBaseParams<T> & GlobalResourceBaseParams; export type WatchGlobalResourceListParams<T extends string> = GlobalResourceListParams<T> & WatchApiParams; export interface ErebusResourceBaseParams { cluster?: string; namespace?: string; } export type ErebusResourceParams<T extends string> = ResourceBaseParams<T> & ErebusResourceBaseParams; export type WatchErebusResourceParams<T extends string> = ErebusResourceParams<T> & WatchApiParams; export type ErebusResourceListParams<T extends string> = ResourceListBaseParams<T> & ErebusResourceBaseParams; export type WatchErebusResourceListParams<T extends string> = ErebusResourceListParams<T> & WatchApiParams; export type ResourceReadParams<T extends string> = GlobalResourceParams<T> | ErebusResourceParams<T>; export type WatchResourceReadParams<T extends string> = WatchGlobalResourceParams<T> | WatchErebusResourceParams<T>; export type ResourceListReadParams<T extends string> = GlobalResourceListParams<T> | ErebusResourceListParams<T>; export type WatchResourceListReadParams<T extends string> = WatchGlobalResourceListParams<T> | WatchErebusResourceListParams<T>; export type ResourceBaseWriteParams<T extends KubernetesResource, R extends string> = ApiBaseParams<R> & { resource: T; }; /** * patch 资源时需要传递完整的原始资源 (resource) 和更新的部分 (part) */ export type ResourceBasePatchParams<T extends KubernetesResource, R extends string> = (ResourceBaseWriteParams<T, R> | ResourceBaseParams<R>) & { operation?: PatchOperation; part: DeepPartial<T> | JSONPatch[]; }; export interface ResourceDeleteAdditionalParams { body?: unknown; } export type GlobalResourceWriteParams<T extends KubernetesResource, R extends string> = ResourceBaseWriteParams<T, R> & GlobalResourceBaseParams; export type GlobalResourcePatchParams<T extends KubernetesResource, R extends string> = ResourceBasePatchParams<T, R> & GlobalResourceBaseParams; export type GlobalResourceDeleteParams<T extends KubernetesResource, R extends string> = (GlobalResourceWriteParams<T, R> | GlobalResourceParams<R>) & ResourceDeleteAdditionalParams; export type ErebusResourceWriteParams<T extends KubernetesResource, R extends string> = ResourceBaseWriteParams<T, R> & ErebusResourceBaseParams; export type ErebusResourcePatchParams<T extends KubernetesResource, R extends string> = ResourceBasePatchParams<T, R> & ErebusResourceBaseParams; export type ErebusResourceDeleteParams<T extends KubernetesResource, R extends string> = (ErebusResourceWriteParams<T, R> | ErebusResourceParams<R>) & ResourceDeleteAdditionalParams; export type ErebusResourceBatchDeleteParams<R extends string> = ErebusResourceListParams<R> & ResourceDeleteAdditionalParams; export type ResourceWriteParams<R extends string, T extends KubernetesResource = KubernetesResource> = GlobalResourceWriteParams<T, R> | ErebusResourceWriteParams<T, R>; export type ResourcePatchParams<R extends string, T extends KubernetesResource = KubernetesResource> = GlobalResourcePatchParams<T, R> | ErebusResourcePatchParams<T, R>; export type ResourceDeleteParams<R extends string, T extends KubernetesResource = KubernetesResource> = GlobalResourceDeleteParams<T, R> | ErebusResourceDeleteParams<T, R>; export type ResourceApiParams<T extends string> = GlobalResourceListParams<T> | ErebusResourceListParams<T> | ResourceReadParams<T> | ResourceWriteParams<T> | ResourcePatchParams<T> | ResourceDeleteParams<T>; export declare enum PatchOperation { JSON = "application/json-patch+json", Merge = "application/merge-patch+json", StrategicMerge = "application/strategic-merge-patch+json" } export declare enum JSONPatchOp { Test = "test", Remove = "remove", Add = "add", Replace = "replace", Move = "move", Copy = "copy" } export type JSONPatch = { op: JSONPatchOp.Test | JSONPatchOp.Add | JSONPatchOp.Replace; path: string; value: unknown; } | { op: JSONPatchOp.Remove; path: string; } | { op: JSONPatchOp.Move | JSONPatchOp.Copy; from: string; path: string; }; export interface WatchAPIResponse<T extends KubernetesResource> { type: WatchEvent; object: T; } export declare enum WatchEvent { Added = "ADDED", Modified = "MODIFIED", Deleted = "DELETED", Error = "ERROR", Bookmark = "BOOKMARK" }