import { Client } from "./client"; import { getEnv } from "./lib/env"; function getPortAndHostname(urlString: string): { hostname: string; port: string; protocol: string } { try { const url = new URL(urlString); return { hostname: url.hostname, port: url.port || (url.protocol === 'https:' ? '443' : '80'), // Default ports if not specified protocol: url.protocol }; } catch (error) { console.error('Invalid URL:', error); return { hostname: '', port: '', protocol: '' }; } } export async function getAppcondaClient() { let url; if (getEnv().APPCONDA_ENDPOINT) { url = getEnv().APPCONDA_ENDPOINT; } else if (typeof window !== 'undefined') { const hostInfo = getPortAndHostname(window.location.href); if (hostInfo.port) { url = `${hostInfo.protocol}//${hostInfo.hostname}:${hostInfo.port}/v1` } else { url = `${hostInfo.protocol}//${hostInfo.hostname}/v1` } } else { url = getEnv().APPCONDA_ENDPOINT || 'http://appconda/v1' } /* if (ApplicationConfig.Port == null) { url = `${ApplicationConfig.Protocol}://${ApplicationConfig.Domain}:${ApplicationConfig.Port}/v1` } else { url = `${ApplicationConfig.Protocol}://${ApplicationConfig.Domain}/v1` } */ const adminClient = new Client() .setEndpoint(url) // Your API Endpoint .setProject('console'); return adminClient } export function getAppcondaClientSync() { let url; if (getEnv().APPCONDA_ENDPOINT) { url = getEnv().APPCONDA_ENDPOINT; } else if (typeof window !== 'undefined') { const hostInfo = getPortAndHostname(window.location.href); if (hostInfo.port) { url = `${hostInfo.protocol}//${hostInfo.hostname}:${hostInfo.port}/v1` } else { url = `${hostInfo.protocol}//${hostInfo.hostname}/v1` } } else { url = getEnv().APPCONDA_ENDPOINT || 'http://appconda/v1' } /* if (ApplicationConfig.Port == null) { url = `${ApplicationConfig.Protocol}://${ApplicationConfig.Domain}:${ApplicationConfig.Port}/v1` } else { url = `${ApplicationConfig.Protocol}://${ApplicationConfig.Domain}/v1` } */ const adminClient = new Client() .setEndpoint(url) // Your API Endpoint .setProject('console'); return adminClient }