UNPKG

@hyperlane-xyz/sdk

Version:

The official SDK for the Hyperlane Network

36 lines 1.34 kB
const REDACTED = '[REDACTED]'; export function parseCustomRpcHeaders(url) { let parsed; try { parsed = new URL(url); } catch { return { url, headers: {}, redactedHeaders: {} }; } // Quick check: if no custom_rpc_header params exist, return original URL unchanged if (!parsed.searchParams.has('custom_rpc_header')) { return { url, headers: {}, redactedHeaders: {} }; } const headers = {}; const redactedHeaders = {}; const retainedParams = []; for (const [key, value] of parsed.searchParams) { if (key === 'custom_rpc_header') { // Use indexOf instead of split - header values can contain colons (e.g., "Bearer:token:with:colons") const colonIdx = value.indexOf(':'); if (colonIdx > 0) { const headerName = value.slice(0, colonIdx); const headerValue = value.slice(colonIdx + 1); headers[headerName] = headerValue; redactedHeaders[headerName] = REDACTED; } } else { retainedParams.push([key, value]); } } parsed.search = ''; retainedParams.forEach(([k, v]) => parsed.searchParams.append(k, v)); return { url: parsed.toString(), headers, redactedHeaders }; } //# sourceMappingURL=provider.js.map