mirror of
https://github.com/google-gemini/gemini-cli.git
synced 2026-03-12 15:10:59 -07:00
42 lines
991 B
TypeScript
42 lines
991 B
TypeScript
/**
|
|
* @license
|
|
* Copyright 2025 Google LLC
|
|
* SPDX-License-Identifier: Apache-2.0
|
|
*/
|
|
|
|
/**
|
|
* Parses custom headers and returns a map of key and vallues
|
|
*/
|
|
export function parseCustomHeaders(
|
|
envValue: string | undefined,
|
|
): Record<string, string> {
|
|
const headers: Record<string, string> = {};
|
|
if (!envValue) {
|
|
return headers;
|
|
}
|
|
|
|
// Split the string on commas that are followed by a header key (key:),
|
|
// but ignore commas that are part of a header value (including values with colons or commas)
|
|
for (const entry of envValue.split(/,(?=\s*[^,:]+:)/)) {
|
|
const trimmedEntry = entry.trim();
|
|
if (!trimmedEntry) {
|
|
continue;
|
|
}
|
|
|
|
const separatorIndex = trimmedEntry.indexOf(':');
|
|
if (separatorIndex === -1) {
|
|
continue;
|
|
}
|
|
|
|
const name = trimmedEntry.slice(0, separatorIndex).trim();
|
|
const value = trimmedEntry.slice(separatorIndex + 1).trim();
|
|
if (!name) {
|
|
continue;
|
|
}
|
|
|
|
headers[name] = value;
|
|
}
|
|
|
|
return headers;
|
|
}
|