UNPKG

@alauda-fe/common

Version:

Alauda frontend team common codes.

47 lines (46 loc) 1.82 kB
import { HttpEvent, HttpHandler, HttpInterceptor, HttpRequest } from '@angular/common/http'; import { Observable } from 'rxjs'; import { KubernetesResource, KubernetesResourceList } from '../core/public-api'; import { ClusterVersionService } from './cluster-version.service'; import { K8sResourceDefinition } from './types'; export declare abstract class ApiCompatibleInterceptor implements HttpInterceptor { abstract matchUrl(req: string): MatchResult; abstract responseAdapters: ResponseAdapter[]; abstract requestAdapters: RequestAdapter[]; protected clusterVersion: ClusterVersionService; intercept(req: HttpRequest<unknown>, next: HttpHandler): Observable<HttpEvent<unknown>>; private executeRequestDowngrade; private executeRequestBodyDowngrade; private executeResponseBodyUpgrade; } interface Adapter { clusterVersion: string; httpMethods?: string[]; } export interface ResponseAdapter extends Adapter { bodyUpgrade: (body: unknown) => unknown; } export interface RequestAdapter extends Adapter { bodyDowngrade?: (body: unknown) => unknown; requestDowngrade?: (req: HttpRequest<unknown>) => HttpRequest<unknown>; } export interface MatchResult { matched: boolean; cluster?: string; } export declare function k8sApiMatcher(resourceType: string | K8sResourceDefinition): (url: string) => { matched: boolean; cluster: string; } | { matched: boolean; cluster?: undefined; }; export declare function k8sResourceOrList(mapper: (res: KubernetesResource) => KubernetesResource): (res: KubernetesResource | KubernetesResourceList) => KubernetesResource | { items: KubernetesResource[]; metadata?: import("../core/public-api").ObjectMeta; spec?: unknown; status?: unknown; kind?: string; apiVersion?: string; }; export {};