UNPKG

tradly

Version:

Tradly JS SDK

187 lines (172 loc) 4.25 kB
/** * Auth Helper * Provides integration with @tradly/auth package (optional dependency) * All functions safely handle cases where @tradly/auth is not installed */ let authPackage = null; let authPackageLoading = false; // Try to load auth package eagerly (non-blocking) // This will attempt to load the package in the background (async () => { if (authPackage !== null || authPackageLoading) return; authPackageLoading = true; try { authPackage = await import("@tradly/auth"); } catch (e) { // Auth package not installed, continue without it authPackage = false; // Use false to indicate we tried and failed } finally { authPackageLoading = false; } })(); /** * Get auth package (synchronous check) * @returns {Object|false|null} Auth package, false if not available, null if still loading */ function getAuthPackage() { if (authPackage === false) return null; // Not available if (authPackage === null) { // Still loading, try to trigger load if not already loading if (!authPackageLoading) { (async () => { authPackageLoading = true; try { authPackage = await import("@tradly/auth"); } catch (e) { authPackage = false; } finally { authPackageLoading = false; } })(); } return null; // Still loading } return authPackage; } /** * Get auth key from @tradly/auth if available * @returns {string|null} Auth key or null if not available */ export function getAuthKeyFromAuth() { const pkg = getAuthPackage(); if (!pkg) return null; try { return pkg.getAuthKey(); } catch (e) { return null; } } /** * Get PK key from @tradly/auth if available * @returns {string|null} PK key or null if not available */ export function getPKKeyFromAuth() { const pkg = getAuthPackage(); if (!pkg) return null; try { const { getDomain, getEnv, getCachedPKKey } = pkg; const domain = getDomain(); const env = getEnv(); if (domain && env) { const pkData = getCachedPKKey(domain, env); return pkData?.key || null; } } catch (e) { return null; } return null; } /** * Check if auth package is initialized * @returns {boolean} True if auth is initialized */ export function isAuthInitialized() { const pkg = getAuthPackage(); if (!pkg) return false; try { return pkg.isAuthInitialized() || false; } catch (e) { return false; } } /** * Get auth configuration from @tradly/auth if available * @returns {Object|null} Auth config or null if not available */ export function getAuthConfig() { const pkg = getAuthPackage(); if (!pkg) return null; try { return pkg.getAuthConfig(); } catch (e) { return null; } } /** * Get cached PK key data from @tradly/auth if available * @param {string} domain - Domain name * @param {string} env - Environment * @returns {Object|null} PK key data or null if not available */ export function getCachedPKKeyFromAuth(domain, env) { const pkg = getAuthPackage(); if (!pkg) return null; try { const { getCachedPKKey } = pkg; return getCachedPKKey(domain, env); } catch (e) { return null; } } /** * Get environment from @tradly/auth if available * @returns {string|null} Environment or null if not available */ export function getEnvFromAuth() { const pkg = getAuthPackage(); if (!pkg) return null; try { return pkg.getEnv(); } catch (e) { return null; } } /** * Get base URL from @tradly/auth if available * @returns {string|null} Base URL or null if not available */ export function getBaseUrlFromAuth() { const pkg = getAuthPackage(); if (!pkg) return null; try { return pkg.getBaseUrl(); } catch (e) { return null; } } /** * Enrich params with keys from @tradly/auth if available * @param {Object} params - Original params object * @returns {Object} - Enriched params with authKey if not provided */ export function enrichParamsWithAuth(params = {}) { const pkg = getAuthPackage(); if (!pkg) { return params; // No auth package, return as-is } // If authKey not provided, try to get from auth package if (!params.authKey) { try { const authKey = pkg.getAuthKey(); if (authKey) { return { ...params, authKey: authKey, }; } } catch (e) { // Auth not initialized or error, continue without it } } return params; }