@alauda-fe/common
Version:
Alauda frontend team common codes.
58 lines • 10.7 kB
JavaScript
/**
* @packageDocumentation
* @module common-layout
*/
import { Injectable } from '@angular/core';
import { orderBy } from 'lodash-es';
import { Subject, forkJoin, identity, of, catchError, map, retry, startWith, switchMap, } from 'rxjs';
import { K8sUtilService, publishRef, } from '../../../core/public-api';
import { CommonLayoutContextService } from './context.service';
import * as i0 from "@angular/core";
import * as i1 from "./context.service";
import * as i2 from "../../../core/public-api";
const RETRY_COUNT = 3;
export class CommonLayoutStoreService {
constructor(context, k8sUtil) {
this.context = context;
this.k8sUtil = k8sUtil;
this.fetch$ = new Subject();
this.projects$ = this.fetch$.pipe(switchMap(() => this.context.getProjects().pipe(retry(RETRY_COUNT), catchError(() => of([])), publishRef())), startWith([]), publishRef());
this.products$ = this.context.getProducts().pipe(retry(RETRY_COUNT), catchError(() => of([])), publishRef());
this.subscriptions = [];
this.subscriptions.push(this.projects$.subscribe(), this.products$.subscribe());
}
ngOnDestroy() {
for (const subscription of this.subscriptions) {
subscription.unsubscribe();
}
}
refetch() {
this.fetch$.next();
}
selectAllProducts() {
return this.products$.pipe(map(products => orderBy(products, item => item.status?.orderOnMenu)));
}
selectProductByName(name) {
return this.products$.pipe(map(products => products.find(item => item.metadata.name === name)));
}
selectAllProjects() {
return this.projects$.pipe(map(identity));
}
selectProjectByName(name) {
return this.projects$.pipe(map(projects => projects.find((item) => this.k8sUtil.getName(item) === name)));
}
selectNamespacesByProjectName(name) {
return this.context.getProjectClusters(name).pipe(switchMap(clusters => clusters.length > 0
? forkJoin(clusters.map(cluster => this.context
.getClusterNamespaces(name, this.k8sUtil.getName(cluster))
.pipe(catchError(() => of([])), map(namespaces => [cluster, namespaces]))))
: of([])));
}
static { this.ɵfac = function CommonLayoutStoreService_Factory(t) { return new (t || CommonLayoutStoreService)(i0.ɵɵinject(i1.CommonLayoutContextService), i0.ɵɵinject(i2.K8sUtilService)); }; }
static { this.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: CommonLayoutStoreService, factory: CommonLayoutStoreService.ɵfac, providedIn: 'root' }); }
}
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(CommonLayoutStoreService, [{
type: Injectable,
args: [{ providedIn: 'root' }]
}], () => [{ type: i1.CommonLayoutContextService }, { type: i2.K8sUtilService }], null); })();
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmUuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tbW9uL3NyYy9wYWdlLXNjYWZmb2xkL3BhZ2UtaGVhZGVyL2NvbW1vbi1sYXlvdXQvc3RvcmUuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7O0dBR0c7QUFFSCxPQUFPLEVBQUUsVUFBVSxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBQ3RELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDcEMsT0FBTyxFQUVMLE9BQU8sRUFFUCxRQUFRLEVBQ1IsUUFBUSxFQUNSLEVBQUUsRUFDRixVQUFVLEVBQ1YsR0FBRyxFQUNILEtBQUssRUFDTCxTQUFTLEVBQ1QsU0FBUyxHQUNWLE1BQU0sTUFBTSxDQUFDO0FBRWQsT0FBTyxFQUVMLGNBQWMsRUFFZCxVQUFVLEdBQ1gsTUFBTSwwQkFBMEIsQ0FBQztBQUVsQyxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQzs7OztBQUUvRCxNQUFNLFdBQVcsR0FBRyxDQUFDLENBQUM7QUFRdEIsTUFBTSxPQUFPLHdCQUF3QjtJQXdCbkMsWUFDbUIsT0FBbUMsRUFDbkMsT0FBdUI7UUFEdkIsWUFBTyxHQUFQLE9BQU8sQ0FBNEI7UUFDbkMsWUFBTyxHQUFQLE9BQU8sQ0FBZ0I7UUF6QnpCLFdBQU0sR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO1FBRTdCLGNBQVMsR0FDeEIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQ2QsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUNiLElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxFQUFFLENBQUMsSUFBSSxDQUM3QixLQUFLLENBQUMsV0FBVyxDQUFDLEVBQ2xCLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsRUFDeEIsVUFBVSxFQUFFLENBQ2IsQ0FDRixFQUNE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QUF3QjtjQURwQyxVQUFVO2VBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAcGFja2FnZURvY3VtZW50YXRpb25cbiAqIEBtb2R1bGUgY29tbW9uLWxheW91dFxuICovXG5cbmltcG9ydCB7IEluamVjdGFibGUsIE9uRGVzdHJveSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgb3JkZXJCeSB9IGZyb20gJ2xvZGFzaC1lcyc7XG5pbXBvcnQge1xuICBPYnNlcnZhYmxlLFxuICBTdWJqZWN0LFxuICBTdWJzY3JpcHRpb24sXG4gIGZvcmtKb2luLFxuICBpZGVudGl0eSxcbiAgb2YsXG4gIGNhdGNoRXJyb3IsXG4gIG1hcCxcbiAgcmV0cnksXG4gIHN0YXJ0V2l0aCxcbiAgc3dpdGNoTWFwLFxufSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHtcbiAgS3ViZXJuZXRlc1Jlc291cmNlLFxuICBLOHNVdGlsU2VydmljZSxcbiAgUHJvZHVjdEVudHJ5LFxuICBwdWJsaXNoUmVmLFxufSBmcm9tICcuLi8uLi8uLi9jb3JlL3B1YmxpYy1hcGknO1xuXG5pbXBvcnQgeyBDb21tb25MYXlvdXRDb250ZXh0U2VydmljZSB9IGZyb20gJy4vY29udGV4dC5zZXJ2aWNlJztcblxuY29uc3QgUkVUUllfQ09VTlQgPSAzO1xuXG5leHBvcnQgaW50ZXJmYWNlIEdyb3VwIHtcbiAgY2x1c3RlcjogS3ViZXJuZXRlc1Jlc291cmNlO1xuICBuYW1lc3BhY2VzOiBLdWJlcm5ldGVzUmVzb3VyY2VbXTtcbn1cblxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBDb21tb25MYXlvdXRTdG9yZVNlcnZpY2UgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuICBwcml2YXRlIHJlYWRvbmx5IGZldGNoJCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBwcm9qZWN0cyQ6IE9ic2VydmFibGU8S3ViZXJuZXRlc1Jlc291cmNlW10+ID1cbiAgICB0aGlzLmZldGNoJC5waXBlKFxuICAgICAgc3dpdGNoTWFwKCgpID0+XG4gICAgICAgIHRoaXMuY29udGV4dC5nZXRQcm9qZWN0cygpLnBpcGUoXG4gICAgICAgICAgcmV0cnkoUkVUUllfQ09VTlQpLFxuICAgICAgICAgIGNhdGNoRXJyb3IoKCkgPT4gb2YoW10pKSxcbiAgICAgICAgICBwdWJsaXNoUmVmKCksXG4gICAgICAgICksXG4gICAgICApLFxuICAgICAgc3RhcnRXaXRoKFtdKSxcbiAgICAgIHB1Ymxpc2hSZWYoKSxcbiAgICApO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgcHJvZHVjdHMkID0gdGhpcy5jb250ZXh0LmdldFByb2R1Y3RzKCkucGlwZShcbiAgICByZXRyeShSRVRSWV9DT1VOVCksXG4gICAgY2F0Y2hFcnJvcigoKSA9PiBvZjxQcm9kdWN0RW50cnlbXT4oW10pKSxcbiAgICBwdWJsaXNoUmVmKCksXG4gICk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBzdWJzY3JpcHRpb25zOiBTdWJzY3JpcHRpb25bXSA9IFtdO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgY29udGV4dDogQ29tbW9uTGF5b3V0Q29udGV4dFNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBrOHNVdGlsOiBLOHNVdGlsU2VydmljZSxcbiAgKSB7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goXG4gICAgICB0aGlzLnByb2plY3RzJC5zdWJzY3JpYmUoKSxcbiAgICAgIHRoaXMucHJvZHVjdHMkLnN1YnNjcmliZSgpLFxuICAgICk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICBmb3IgKGNvbnN0IHN1YnNjcmlwdGlvbiBvZiB0aGlzLnN1YnNjcmlwdGlvbnMpIHtcbiAgICAgIHN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgIH1cbiAgfVxuXG4gIHJlZmV0Y2goKSB7XG4gICAgdGhpcy5mZXRjaCQubmV4dCgpO1xuICB9XG5cbiAgc2VsZWN0QWxsUHJvZHVjdHMoKSB7XG4gICAgcmV0dXJuIHRoaXMucHJvZHVjdHMkLnBpcGUoXG4gICAgICBtYXAocHJvZHVjdHMgPT4gb3JkZXJCeShwcm9kdWN0cywgaXRlbSA9PiBpdGVtLnN0YXR1cz8ub3JkZXJPbk1lbnUpKSxcbiAgICApO1xuICB9XG5cbiAgc2VsZWN0UHJvZHVjdEJ5TmFtZShuYW1lOiBzdHJpbmcpOiBPYnNlcnZhYmxlPFByb2R1Y3RFbnRyeT4ge1xuICAgIHJldHVybiB0aGlzLnByb2R1Y3RzJC5waXBlKFxuICAgICAgbWFwKHByb2R1Y3RzID0+IHByb2R1Y3RzLmZpbmQoaXRlbSA9PiBpdGVtLm1ldGFkYXRhLm5hbWUgPT09IG5hbWUpKSxcbiAgICApO1xuICB9XG5cbiAgc2VsZWN0QWxsUHJvamVjdHMoKSB7XG4gICAgcmV0dXJuIHRoaXMucHJvamVjdHMkLnBpcGUobWFwKGlkZW50aXR5KSk7XG4gIH1cblxuICBzZWxlY3RQcm9qZWN0QnlOYW1lKG5hbWU6IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLnByb2plY3RzJC5waXBlKFxuICAgICAgbWFwKHByb2plY3RzID0+XG4gICAgICAgIHByb2plY3RzLmZpbmQoXG4gICAgICAgICAgKGl0ZW06IEt1YmVybmV0ZXNSZXNvdXJjZSkgPT4gdGhpcy5rOHNVdGlsLmdldE5hbWUoaXRlbSkgPT09IG5hbWUsXG4gICAgICAgICksXG4gICAgICApLFxuICAgICk7XG4gIH1cblxuICBzZWxlY3ROYW1lc3BhY2VzQnlQcm9qZWN0TmFtZShcbiAgICBuYW1lOiBzdHJpbmcsXG4gICk6IE9ic2VydmFibGU8QXJyYXk8W0t1YmVybmV0ZXNSZXNvdXJjZSwgS3ViZXJuZXRlc1Jlc291cmNlW11dPj4ge1xuICAgIHJldHVybiB0aGlzLmNvbnRleHQuZ2V0UHJvamVjdENsdXN0ZXJzKG5hbWUpLnBpcGUoXG4gICAgICBzd2l0Y2hNYXAoY2x1c3RlcnMgPT5cbiAgICAgICAgY2x1c3RlcnMubGVuZ3RoID4gMFxuICAgICAgICAgID8gZm9ya0pvaW4oXG4gICAgICAgICAgICAgIGNsdXN0ZXJzLm1hcChjbHVzdGVyID0+XG4gICAgICAgICAgICAgICAgdGhpcy5jb250ZXh0XG4gICAgICAgICAgICAgICAgICAuZ2V0Q2x1c3Rlck5hbWVzcGFjZXMobmFtZSwgdGhpcy5rOHNVdGlsLmdldE5hbWUoY2x1c3RlcikpXG4gICAgICAgICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICAgICAgY2F0Y2hFcnJvcigoKSA9PiBvZihbXSkpLFxuICAgICAgICAgICAgICAgICAgICBtYXAobmFtZXNwYWNlcyA9PiBbY2x1c3RlciwgbmFtZXNwYWNlc10pLFxuICAgICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIClcbiAgICAgICAgICA6IG9mKFtdKSxcbiAgICAgICksXG4gICAgKTtcbiAgfVxufVxuIl19