@alauda-fe/common
Version:
Alauda frontend team common codes.
76 lines • 10.5 kB
JavaScript
/**
* @packageDocumentation
* @module utils
*/
import { InjectionToken } from '@angular/core';
import { getBaseHref } from '../utils/public-api';
export const anonymousApis = [];
export const resourceDefinitions = {};
const GLOBAL_ENVIRONMENTS = {
GLOBAL_NAMESPACE: 'cpaas-system',
LABEL_BASE_DOMAIN: 'cpaas.io',
};
let GLOBAL_ENVIRONMENTS_INITIALIZED = false;
export function initGlobalEnvironments(env) {
if (GLOBAL_ENVIRONMENTS_INITIALIZED &&
// @ts-expect-error -- webpack specific
!module.hot) {
throw new Error('Global environments have been initialized');
}
GLOBAL_ENVIRONMENTS_INITIALIZED = true;
Object.assign(GLOBAL_ENVIRONMENTS, env);
}
export async function fetchGlobalEnvironments(callback) {
try {
const response = await fetch('/console/api/v1/envs');
if (!response.ok) {
throw new Error('Network response was not ok');
}
const envs = await response.json();
initGlobalEnvironments(envs);
callback?.(envs);
return envs;
}
catch (error) {
console.error('Failed to load environments.', error);
}
}
export function getGlobalEnvironments(name) {
if (!GLOBAL_ENVIRONMENTS_INITIALIZED) {
throw new Error('Global environments have not been initialized');
}
return name ? GLOBAL_ENVIRONMENTS[name] : GLOBAL_ENVIRONMENTS;
}
export const ANONYMOUS_APIS = new InjectionToken('anonymous apis no need for authorization', {
providedIn: 'root',
factory: () => anonymousApis,
});
export const TOKEN_BASE_DOMAIN = new InjectionToken('default base domain string for annotations and labels of kubernetes resource', {
providedIn: 'root',
factory: () => getGlobalEnvironments('LABEL_BASE_DOMAIN'),
});
export const TOKEN_GLOBAL_NAMESPACE = new InjectionToken('default global namespace for namespaced global resource', {
providedIn: 'root',
factory: () => getGlobalEnvironments('GLOBAL_NAMESPACE'),
});
export const TOKEN_LOGO_URL = new InjectionToken('LOGO_URL', {
providedIn: 'root',
factory: () => getGlobalEnvironments('LOGO_URL'),
});
export const TOKEN_RESOURCE_DEFINITIONS = new InjectionToken('custom resource definitions', {
providedIn: 'root',
factory: () => resourceDefinitions,
});
export const TOKEN_BASE_HREF = new InjectionToken('base href from DOM', {
providedIn: 'root',
factory: getBaseHref,
});
export const TOKEN_DISABLE_SESSION_MANAGE = new InjectionToken('disable session manage', {
providedIn: 'root',
factory: () => false,
});
export const TOKEN_CRYPTO_INTERCEPTOR_URL_REGEXPS = new InjectionToken('Configure the default encryption-enabled URL matching regular expression array', {
providedIn: 'root',
factory: () => [],
});
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9rZW5zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21tb24vc3JjL2NvcmUvY29uc3RhbnRzL3Rva2Vucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7O0dBR0c7QUFFSCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBSS9DLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUVsRCxNQUFNLENBQUMsTUFBTSxhQUFhLEdBQTJCLEVBQUUsQ0FBQztBQUV4RCxNQUFNLENBQUMsTUFBTSxtQkFBbUIsR0FBMkIsRUFBRSxDQUFDO0FBRTlELE1BQU0sbUJBQW1CLEdBQWlCO0lBQ3hDLGdCQUFnQixFQUFFLGNBQWM7SUFDaEMsaUJBQWlCLEVBQUUsVUFBVTtDQUM5QixDQUFDO0FBRUYsSUFBSSwrQkFBK0IsR0FBRyxLQUFLLENBQUM7QUFFNUMsTUFBTSxVQUFVLHNCQUFzQixDQUFDLEdBQWlCO0lBQ3RELElBQ0UsK0JBQStCO1FBQy9CLHVDQUF1QztRQUN2QyxDQUFDLE1BQU0sQ0FBQyxHQUFHLEVBQ1gsQ0FBQztRQUNELE1BQU0sSUFBSSxLQUFLLENBQUMsMkNBQTJDLENBQUMsQ0FBQztJQUMvRCxDQUFDO0lBRUQsK0JBQStCLEdBQUcsSUFBSSxDQUFDO0lBQ3ZDLE1BQU0sQ0FBQyxNQUFNLENBQUMsbUJBQW1CLEVBQUUsR0FBRyxDQUFDLENBQUM7QUFDMUMsQ0FBQztBQUVELE1BQU0sQ0FBQyxLQUFLLFVBQVUsdUJBQXVCLENBQzNDLFFBQXVDO0lBRXZDLElBQUksQ0FBQztRQUNILE1BQU0sUUFBUSxHQUFHLE1BQU0sS0FBSyxDQUFDLHNCQUFzQixDQUFDLENBQUM7UUFDckQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFFLEVBQUUsQ0FBQztZQUNqQixNQUFNLElBQUksS0FBSyxDQUFDLDZCQUE2QixDQUFDLENBQUM7UUFDakQsQ0FBQztRQUNELE1BQU0sSUFBSSxHQUFpQixNQUFNLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNqRCxzQkFBc0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM3QixRQUFRLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNqQixPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO1FBQ2YsT0FBTyxDQUFDLEtBQUssQ0FBQyw4QkFBOEIsRUFBRSxLQUFLLENBQUMsQ0FBQztJQUN2RCxDQUFDO0FBQ0gsQ0FBQztBQU1ELE1BQU0sVUFBVSxxQkFBcUIsQ0FBQyxJQUF5QjtJQUM3RCxJQUFJLENBQUMsK0JBQStCLEVBQUUsQ0FBQztRQUNyQyxNQUFNLElBQUksS0FBSyxDQUFDLCtDQUErQyxDQUFDLENBQUM7SUFDbkUsQ0FBQztJQUVELE9BQU8sSUFBSSxDQUFDLENBQUMsQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsbUJBQW1CLENBQUM7QUFDaEUsQ0FBQztBQUVELE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FBRyxJQUFJLGNBQWMsQ0FDOUMsMENBQTBDLEVBQzFDO0lBQ0UsVUFBVSxFQUFFLE1BQU07SUFDbEIsT0FBTyxFQUFFLEdBQUcsRUFBRSxDQUFDLGFBQWE7Q0FDN0IsQ0FDRixDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUcsSUFBSSxjQUFjLENBQ2pELDhFQUE4RSxFQUM5RTtJQUNFLFVBQVUsRUFBRSxNQUFNO0lBQ2xCLE9BQU8sRUFBRSxHQUFHLEVBQUUsQ0FBQyxxQkFBcUIsQ0FBQyxtQkFBbUIsQ0FBQztDQUMxRCxDQUNGLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxzQkFBc0IsR0FBRyxJQUFJLGNBQWMsQ0FDdEQseURBQXlELEVBQ3pEO0lBQ0UsVUFBVSxFQUFFLE1BQU07SUFDbEIsT0FBTyxFQUFFLEdBQUcsRUFBRSxDQUFDLHFCQUFxQixDQUFDLGtCQUFrQixDQUFDO0NBQ3pELENBQ0YsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FBRyxJQUFJLGNBQWMsQ0FBQyxVQUFVLEVBQUU7SUFDM0QsVUFBVSxFQUFFLE1BQU07SUFDbEIsT0FBTyxFQUFFLEdBQUcsRUFBRSxDQUFDLHFCQUFxQixDQUFDLFVBQVUsQ0FBQztDQUNqRCxDQUFDLENBQUM7QUFFSCxNQUFNLENBQUMsTUFBTSwwQkFBMEIsR0FBRyxJQUFJLGNBQWMsQ0FDMUQsNkJBQTZCLEVBQzdCO0lBQ0UsVUFBVSxFQUFFLE1BQU07SUFDbEIsT0FBTyxFQUFFLEdBQUcsRUFBRSxDQUFDLG1CQUFtQjtDQUNuQyxDQUNGLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxlQUFlLEdBQUcsSUFBSSxjQUFjLENBQy9DLG9CQUFvQixFQUNwQjtJQUNFLFVBQVUsRUFBRSxNQUFNO0lBQ2xCLE9BQU8sRUFBRSxXQUFXO0NBQ3JCLENBQ0YsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLDRCQUE0QixHQUFHLElBQUksY0FBYyxDQUM1RCx3QkFBd0IsRUFDeEI7SUFDRSxVQUFVLEVBQUUsTUFBTTtJQUNsQixPQUFPLEVBQUUsR0FBRyxFQUFFLENBQUMsS0FBSztDQUNyQixDQUNGLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxvQ0FBb0MsR0FBRyxJQUFJLGNBQWMsQ0FDcEUsZ0ZBQWdGLEVBQ2hGO0lBQ0UsVUFBVSxFQUFFLE1BQU07SUFDbEIsT0FBTyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUU7Q0FDbEIsQ0FDRixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAcGFja2FnZURvY3VtZW50YXRpb25cbiAqIEBtb2R1bGUgdXRpbHNcbiAqL1xuXG5pbXBvcnQgeyBJbmplY3Rpb25Ub2tlbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBLOHNSZXNvdXJjZURlZmluaXRpb25zIH0gZnJvbSAnLi4vLi4vYXBpL3R5cGVzJztcbmltcG9ydCB7IEVudmlyb25tZW50cyB9IGZyb20gJy4uL3R5cGVzL2NvbW1vbnMnO1xuaW1wb3J0IHsgZ2V0QmFzZUhyZWYgfSBmcm9tICcuLi91dGlscy9wdWJsaWMtYXBpJztcblxuZXhwb3J0IGNvbnN0IGFub255bW91c0FwaXM6IEFycmF5PHN0cmluZyB8IFJlZ0V4cD4gPSBbXTtcblxuZXhwb3J0IGNvbnN0IHJlc291cmNlRGVmaW5pdGlvbnM6IEs4c1Jlc291cmNlRGVmaW5pdGlvbnMgPSB7fTtcblxuY29uc3QgR0xPQkFMX0VOVklST05NRU5UUzogRW52aXJvbm1lbnRzID0ge1xuICBHTE9CQUxfTkFNRVNQQUNFOiAnY3BhYXMtc3lzdGVtJyxcbiAgTEFCRUxfQkFTRV9ET01BSU46ICdjcGFhcy5pbycsXG59O1xuXG5sZXQgR0xPQkFMX0VOVklST05NRU5UU19JTklUSUFMSVpFRCA9IGZhbHNlO1xuXG5leHBvcnQgZnVuY3Rpb24gaW5pdEdsb2JhbEVudmlyb25tZW50cyhlbnY6IEVudmlyb25tZW50cyk6IHZvaWQge1xuICBpZiAoXG4gICAgR0xPQkFMX0VOVklST05NRU5UU19JTklUSUFMSVpFRCAmJlxuICAgIC8vIEB0cy1leHBlY3QtZXJyb3IgLS0gd2VicGFjayBzcGVjaWZpY1xuICAgICFtb2R1bGUuaG90XG4gICkge1xuICAgIHRocm93IG5ldyBFcnJvcignR2xvYmFsIGVudmlyb25tZW50cyBoYXZlIGJlZW4gaW5pdGlhbGl6ZWQnKTtcbiAgfVxuXG4gIEdMT0JBTF9FTlZJUk9OTUVOVFNfSU5JVElBTElaRUQgPSB0cnVlO1xuICBPYmplY3QuYXNzaWduKEdMT0JBTF9FTlZJUk9OTUVOVFMsIGVudik7XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBmZXRjaEdsb2JhbEVudmlyb25tZW50cyhcbiAgY2FsbGJhY2s/OiAoZW52czogRW52aXJvbm1lbnRzKSA9PiB2b2lkLFxuKSB7XG4gIHRyeSB7XG4gICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaCgnL2NvbnNvbGUvYXBpL3YxL2VudnMnKTtcbiAgICBpZiAoIXJlc3BvbnNlLm9rKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ05ldHdvcmsgcmVzcG9uc2Ugd2FzIG5vdCBvaycpO1xuICAgIH1cbiAgICBjb25zdCBlbnZzOiBFbnZpcm9ubWVudHMgPSBhd2FpdCByZXNwb25zZS5qc29uKCk7XG4gICAgaW5pdEdsb2JhbEVudmlyb25tZW50cyhlbnZzKTtcbiAgICBjYWxsYmFjaz8uKGVudnMpO1xuICAgIHJldHVybiBlbnZzO1xuICB9IGNhdGNoIChlcnJvcikge1xuICAgIGNvbnNvbGUuZXJyb3IoJ0ZhaWxlZCB0byBsb2FkIGVudmlyb25tZW50cy4nLCBlcnJvcik7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldEdsb2JhbEVudmlyb25tZW50cygpOiBSZWFkb25seTxFbnZpcm9ubWVudHM+O1xuZXhwb3J0IGZ1bmN0aW9uIGdldEdsb2JhbEVudmlyb25tZW50czxUIGV4dGVuZHMga2V5b2YgRW52aXJvbm1lbnRzPihcbiAgbmFtZTogVCxcbik6IEVudmlyb25tZW50c1tUXTtcbmV4cG9ydCBmdW5jdGlvbiBnZXRHbG9iYWxFbnZpcm9ubWVudHMobmFtZT86IGtleW9mIEVudmlyb25tZW50cykge1xuICBpZiAoIUdMT0JBTF9FTlZJUk9OTUVOVFNfSU5JVElBTElaRUQpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0dsb2JhbCBlbnZpcm9ubWVudHMgaGF2ZSBub3QgYmVlbiBpbml0aWFsaXplZCcpO1xuICB9XG5cbiAgcmV0dXJuIG5hbWUgPyBHTE9CQUxfRU5WSVJPTk1FTlRTW25hbWVdIDogR0xPQkFMX0VOVklST05NRU5UUztcbn1cblxuZXhwb3J0IGNvbnN0IEFOT05ZTU9VU19BUElTID0gbmV3IEluamVjdGlvblRva2VuKFxuICAnYW5vbnltb3VzIGFwaXMgbm8gbmVlZCBmb3IgYXV0aG9yaXphdGlvbicsXG4gIHtcbiAgICBwcm92aWRlZEluOiAncm9vdCcsXG4gICAgZmFjdG9yeTogKCkgPT4gYW5vbnltb3VzQXBpcyxcbiAgfSxcbik7XG5cbmV4cG9ydCBjb25zdCBUT0tFTl9CQVNFX0RPTUFJTiA9IG5ldyBJbmplY3Rpb25Ub2tlbihcbiAgJ2RlZmF1bHQgYmFzZSBkb21haW4gc3RyaW5nIGZvciBhbm5vdGF0aW9ucyBhbmQgbGFiZWxzIG9mIGt1YmVybmV0ZXMgcmVzb3VyY2UnLFxuICB7XG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxuICAgIGZhY3Rvcnk6ICgpID0+IGdldEdsb2JhbEVudmlyb25tZW50cygnTEFCRUxfQkFTRV9ET01BSU4nKSxcbiAgfSxcbik7XG5cbmV4cG9ydCBjb25zdCBUT0tFTl9HTE9CQUxfTkFNRVNQQUNFID0gbmV3IEluamVjdGlvblRva2VuKFxuICAnZGVmYXVsdCBnbG9iYWwgbmFtZXNwYWNlIGZvciBuYW1lc3BhY2VkIGdsb2JhbCByZXNvdXJjZScsXG4gIHtcbiAgICBwcm92aWRlZEluOiAncm9vdCcsXG4gICAgZmFjdG9yeTogKCkgPT4gZ2V0R2xvYmFsRW52aXJvbm1lbnRzKCdHTE9CQUxfTkFNRVNQQUNFJyksXG4gIH0sXG4pO1xuXG5leHBvcnQgY29uc3QgVE9LRU5fTE9HT19VUkwgPSBuZXcgSW5qZWN0aW9uVG9rZW4oJ0xPR09fVVJMJywge1xuICBwcm92aWRlZEluOiAncm9vdCcsXG4gIGZhY3Rvcnk6ICgpID0+IGdldEdsb2JhbEVudmlyb25tZW50cygnTE9HT19VUkwnKSxcbn0pO1xuXG5leHBvcnQgY29uc3QgVE9LRU5fUkVTT1VSQ0VfREVGSU5JVElPTlMgPSBuZXcgSW5qZWN0aW9uVG9rZW4oXG4gICdjdXN0b20gcmVzb3VyY2UgZGVmaW5pdGlvbnMnLFxuICB7XG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxuICAgIGZhY3Rvcnk6ICgpID0+IHJlc291cmNlRGVmaW5pdGlvbnMsXG4gIH0sXG4pO1xuXG5leHBvcnQgY29uc3QgVE9LRU5fQkFTRV9IUkVGID0gbmV3IEluamVjdGlvblRva2VuPHN0cmluZz4oXG4gICdiYXNlIGhyZWYgZnJvbSBET00nLFxuICB7XG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxuICAgIGZhY3Rvcnk6IGdldEJhc2VIcmVmLFxuICB9LFxuKTtcblxuZXhwb3J0IGNvbnN0IFRPS0VOX0RJU0FCTEVfU0VTU0lPTl9NQU5BR0UgPSBuZXcgSW5qZWN0aW9uVG9rZW4oXG4gICdkaXNhYmxlIHNlc3Npb24gbWFuYWdlJyxcbiAge1xuICAgIHByb3ZpZGVkSW46ICdyb290JyxcbiAgICBmYWN0b3J5OiAoKSA9PiBmYWxzZSxcbiAgfSxcbik7XG5cbmV4cG9ydCBjb25zdCBUT0tFTl9DUllQVE9fSU5URVJDRVBUT1JfVVJMX1JFR0VYUFMgPSBuZXcgSW5qZWN0aW9uVG9rZW4oXG4gICdDb25maWd1cmUgdGhlIGRlZmF1bHQgZW5jcnlwdGlvbi1lbmFibGVkIFVSTCBtYXRjaGluZyByZWd1bGFyIGV4cHJlc3Npb24gYXJyYXknLFxuICB7XG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxuICAgIGZhY3Rvcnk6ICgpID0+IFtdLFxuICB9LFxuKTtcbiJdfQ==