UNPKG

@alauda-fe/common

Version:

Alauda frontend team common codes.

70 lines 8.94 kB
/** * @packageDocumentation * @module license-api */ import { HttpClient } from '@angular/common/http'; import { inject, Injectable } from '@angular/core'; import { catchError, map, of, shareReplay, switchMap } from 'rxjs'; import { API_GATEWAY } from '../core/constants/constants'; import * as i0 from "@angular/core"; export const LICENSE_FEATURE_GATE = `${API_GATEWAY}/fg/v1/featuregates/license`; export const ENTERPRISE_SUPPORT_FEATURE_GATE = `${API_GATEWAY}/fg/v1/featuregates/enterprise-support`; export function getResourceNum(resource = {}) { return Object.values(resource).reduce((pre, cur) => cur + pre, 0); } export function formatProductName(productName) { return productName.replaceAll(/\s+/g, '-'); } export class LicenseApiService { constructor() { this.http = inject(HttpClient); this.licenseExempt$ = this.http .get(ENTERPRISE_SUPPORT_FEATURE_GATE) .pipe(map(res => res.status.licenseExempt ?? false), catchError(() => of(true)), shareReplay(1)); } isLicenseExempt() { return this.licenseExempt$; } getLicense(product) { return this.http.get(LICENSE_FEATURE_GATE, { params: { product }, }); } getEnterpriseSupport(product) { return this.http.get(ENTERPRISE_SUPPORT_FEATURE_GATE, { params: product && { product, }, }); } getLicenseResourceLimit(check, resource) { const params = check === 'version' ? { check, targetVersion: resource } : { check, resourceNum: resource }; return this.isLicenseExempt().pipe(switchMap(exempt => exempt ? of(true) : this.http .get(LICENSE_FEATURE_GATE, { params, }) .pipe(map(res => res.status.enabled)))); } /** * @deprecated 已经没有使用场景,未考虑 licenseExempt 情况 */ getLicenseAllowVersion(version) { return this.http.get(LICENSE_FEATURE_GATE, { params: { check: 'version', targetVersion: version, }, }); } static { this.ɵfac = function LicenseApiService_Factory(t) { return new (t || LicenseApiService)(); }; } static { this.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: LicenseApiService, factory: LicenseApiService.ɵfac, providedIn: 'root' }); } } (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(LicenseApiService, [{ type: Injectable, args: [{ providedIn: 'root' }] }], null, null); })(); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGljZW5zZS1hcGkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2NvbW1vbi9zcmMvbGljZW5zZS9saWNlbnNlLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7O0dBR0c7QUFFSCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbEQsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLFVBQVUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFbkUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDZCQUE2QixDQUFDOztBQUcxRCxNQUFNLENBQUMsTUFBTSxvQkFBb0IsR0FBRyxHQUFHLFdBQVcsNkJBQTZCLENBQUM7QUFDaEYsTUFBTSxDQUFDLE1BQU0sK0JBQStCLEdBQUcsR0FBRyxXQUFXLHdDQUF3QyxDQUFDO0FBRXRHLE1BQU0sVUFBVSxjQUFjLENBQUMsV0FBbUMsRUFBRTtJQUNsRSxPQUFPLE1BQU0sQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxHQUFHLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQztBQUNwRSxDQUFDO0FBRUQsTUFBTSxVQUFVLGlCQUFpQixDQUFDLFdBQW1CO0lBQ25ELE9BQU8sV0FBVyxDQUFDLFVBQVUsQ0FBQyxNQUFNLEVBQUUsR0FBRyxDQUFDLENBQUM7QUFDN0MsQ0FBQztBQUdELE1BQU0sT0FBTyxpQkFBaUI7SUFEOUI7UUFFbUIsU0FBSSxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUUxQixtQkFBYyxHQUFHLElBQUksQ0FBQyxJQUFJO2FBQ3hDLEdBQUcsQ0FBK0IsK0JBQStCLENBQUM7YUFDbEUsSUFBSSxDQUNILEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsYUFBYSxJQUFJLEtBQUssQ0FBQyxFQUM3QyxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQzFCLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FDZixDQUFDO0tBdURMO0lBckRDLGVBQWU7UUFDYixPQUFPLElBQUksQ0FBQyxjQUFjLENBQUM7SUFDN0IsQ0FBQztJQUVELFVBQVUsQ0FBQyxPQUFlO1FBQ3hCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQWMsb0JBQW9CLEVBQUU7WUFDdEQsTUFBTSxFQUFFLEVBQUUsT0FBTyxFQUFFO1NBQ3BCLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxvQkFBb0IsQ0FBQyxPQUFnQjtRQUNuQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUNsQiwrQkFBK0IsRUFDL0I7WUFDRSxNQUFNLEVBQUUsT0FBTyxJQUFJO2dCQUNqQixPQUFPO2FBQ1I7U0FDRixDQUNGLENBQUM7SUFDSixDQUFDO0lBRUQsdUJBQXVCLENBQ3JCLEtBQXNDLEVBQ3RDLFFBQWdCO1FBRWhCLE1BQU0sTUFBTSxHQUNWLEtBQUssS0FBSyxTQUFTO1lBQ2pCLENBQUMsQ0FBQyxFQUFFLEtBQUssRUFBRSxhQUFhLEVBQUUsUUFBUSxFQUFFO1lBQ3BDLENBQUMsQ0FBQyxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsUUFBUSxFQUFFLENBQUM7UUFDdkMsT0FBTyxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUMsSUFBSSxDQUNoQyxTQUFTLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FDakIsTUFBTTtZQUNKLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDO1lBQ1YsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJO2lCQUNOLEdBQUcsQ0FBYyxvQkFBb0IsRUFBRTtnQkFDdEMsTUFBTTthQUNQLENBQUM7aUJBQ0QsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FDNUMsQ0FDRixDQUFDO0lBQ0osQ0FBQztJQUVEOztPQUVHO0lBQ0gsc0JBQXNCLENBQUMsT0FBZTtRQUNwQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFjLG9CQUFvQixFQUFFO1lBQ3RELE1BQU0sRUFBRTtnQkFDTixLQUFLLEVBQUUsU0FBUztnQkFDaEIsYUFBYSxFQUFFLE9BQU87YUFDdkI7U0FDRixDQUFDLENBQUM7SUFDTCxDQUFDO2tGQS9EVSxpQkFBaUI7dUVBQWpCLGlCQUFpQixXQUFqQixpQkFBaUIsbUJBREosTUFBTTs7aUZBQ25CLGlCQUFpQjtjQUQ3QixVQUFVO2VBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAcGFja2FnZURvY3VtZW50YXRpb25cbiAqIEBtb2R1bGUgbGljZW5zZS1hcGlcbiAqL1xuXG5pbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgaW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBjYXRjaEVycm9yLCBtYXAsIG9mLCBzaGFyZVJlcGxheSwgc3dpdGNoTWFwIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IEFQSV9HQVRFV0FZIH0gZnJvbSAnLi4vY29yZS9jb25zdGFudHMvY29uc3RhbnRzJztcbmltcG9ydCB7IEZlYXR1cmVHYXRlLCBGZWF0dXJlR2F0ZUVudGVycHJpc2VTdXBwb3J0IH0gZnJvbSAnLi4vY29yZS9wdWJsaWMtYXBpJztcblxuZXhwb3J0IGNvbnN0IExJQ0VOU0VfRkVBVFVSRV9HQVRFID0gYCR7QVBJX0dBVEVXQVl9L2ZnL3YxL2ZlYXR1cmVnYXRlcy9saWNlbnNlYDtcbmV4cG9ydCBjb25zdCBFTlRFUlBSSVNFX1NVUFBPUlRfRkVBVFVSRV9HQVRFID0gYCR7QVBJX0dBVEVXQVl9L2ZnL3YxL2ZlYXR1cmVnYXRlcy9lbnRlcnByaXNlLXN1cHBvcnRgO1xuXG5leHBvcnQgZnVuY3Rpb24gZ2V0UmVzb3VyY2VOdW0ocmVzb3VyY2U6IFJlY29yZDxzdHJpbmcsIG51bWJlcj4gPSB7fSk6IG51bWJlciB7XG4gIHJldHVybiBPYmplY3QudmFsdWVzKHJlc291cmNlKS5yZWR1Y2UoKHByZSwgY3VyKSA9PiBjdXIgKyBwcmUsIDApO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZm9ybWF0UHJvZHVjdE5hbWUocHJvZHVjdE5hbWU6IHN0cmluZykge1xuICByZXR1cm4gcHJvZHVjdE5hbWUucmVwbGFjZUFsbCgvXFxzKy9nLCAnLScpO1xufVxuXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIExpY2Vuc2VBcGlTZXJ2aWNlIHtcbiAgcHJpdmF0ZSByZWFkb25seSBodHRwID0gaW5qZWN0KEh0dHBDbGllbnQpO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgbGljZW5zZUV4ZW1wdCQgPSB0aGlzLmh0dHBcbiAgICAuZ2V0PEZlYXR1cmVHYXRlRW50ZXJwcmlzZVN1cHBvcnQ+KEVOVEVSUFJJU0VfU1VQUE9SVF9GRUFUVVJFX0dBVEUpXG4gICAgLnBpcGUoXG4gICAgICBtYXAocmVzID0+IHJlcy5zdGF0dXMubGljZW5zZUV4ZW1wdCA/PyBmYWxzZSksXG4gICAgICBjYXRjaEVycm9yKCgpID0+IG9mKHRydWUpKSxcbiAgICAgIHNoYXJlUmVwbGF5KDEpLFxuICAgICk7XG5cbiAgaXNMaWNlbnNlRXhlbXB0KCkge1xuICAgIHJldHVybiB0aGlzLmxpY2Vuc2VFeGVtcHQkO1xuICB9XG5cbiAgZ2V0TGljZW5zZShwcm9kdWN0OiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxGZWF0dXJlR2F0ZT4oTElDRU5TRV9GRUFUVVJFX0dBVEUsIHtcbiAgICAgIHBhcmFtczogeyBwcm9kdWN0IH0sXG4gICAgfSk7XG4gIH1cblxuICBnZXRFbnRlcnByaXNlU3VwcG9ydChwcm9kdWN0Pzogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8RmVhdHVyZUdhdGVFbnRlcnByaXNlU3VwcG9ydD4oXG4gICAgICBFTlRFUlBSSVNFX1NVUFBPUlRfRkVBVFVSRV9HQVRFLFxuICAgICAge1xuICAgICAgICBwYXJhbXM6IHByb2R1Y3QgJiYge1xuICAgICAgICAgIHByb2R1Y3QsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICk7XG4gIH1cblxuICBnZXRMaWNlbnNlUmVzb3VyY2VMaW1pdChcbiAgICBjaGVjazogJ3Jlc291cmNlJyB8ICdub2RlJyB8ICd2ZXJzaW9uJyxcbiAgICByZXNvdXJjZTogbnVtYmVyLFxuICApIHtcbiAgICBjb25zdCBwYXJhbXMgPVxuICAgICAgY2hlY2sgPT09ICd2ZXJzaW9uJ1xuICAgICAgICA/IHsgY2hlY2ssIHRhcmdldFZlcnNpb246IHJlc291cmNlIH1cbiAgICAgICAgOiB7IGNoZWNrLCByZXNvdXJjZU51bTogcmVzb3VyY2UgfTtcbiAgICByZXR1cm4gdGhpcy5pc0xpY2Vuc2VFeGVtcHQoKS5waXBlKFxuICAgICAgc3dpdGNoTWFwKGV4ZW1wdCA9PlxuICAgICAgICBleGVtcHRcbiAgICAgICAgICA/IG9mKHRydWUpXG4gICAgICAgICAgOiB0aGlzLmh0dHBcbiAgICAgICAgICAgICAgLmdldDxGZWF0dXJlR2F0ZT4oTElDRU5TRV9GRUFUVVJFX0dBVEUsIHtcbiAgICAgICAgICAgICAgICBwYXJhbXMsXG4gICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgIC5waXBlKG1hcChyZXMgPT4gcmVzLnN0YXR1cy5lbmFibGVkKSksXG4gICAgICApLFxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogQGRlcHJlY2F0ZWQg5bey57uP5rKh5pyJ5L2/55So5Zy65pmv77yM5pyq6ICD6JmRIGxpY2Vuc2VFeGVtcHQg5oOF5Ya1XG4gICAqL1xuICBnZXRMaWNlbnNlQWxsb3dWZXJzaW9uKHZlcnNpb246IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PEZlYXR1cmVHYXRlPihMSUNFTlNFX0ZFQVRVUkVfR0FURSwge1xuICAgICAgcGFyYW1zOiB7XG4gICAgICAgIGNoZWNrOiAndmVyc2lvbicsXG4gICAgICAgIHRhcmdldFZlcnNpb246IHZlcnNpb24sXG4gICAgICB9LFxuICAgIH0pO1xuICB9XG59XG4iXX0=