chore(vendor): import pi 1.3.0
Imported as a linear vendor commit so forge rebases do not replay the upstream root tree. git-subtree-dir: third_party/pi git-subtree-split: 71023aec1546d6d677a65669c5665c0927ce0dd0
This commit is contained in:
17
third_party/pi/packages/ai/src/utils/headers.ts
vendored
17
third_party/pi/packages/ai/src/utils/headers.ts
vendored
@@ -8,11 +8,16 @@ export function headersToRecord(headers: Headers): Record<string, string> {
|
||||
return result;
|
||||
}
|
||||
|
||||
export function providerHeadersToRecord(headers: ProviderHeaders | undefined): Record<string, string> | undefined {
|
||||
if (!headers) return undefined;
|
||||
const result: Record<string, string> = {};
|
||||
for (const [key, value] of Object.entries(headers)) {
|
||||
if (value !== null) result[key] = value;
|
||||
export function providerHeadersToRecord(
|
||||
...headerSources: (ProviderHeaders | undefined)[]
|
||||
): Record<string, string> | undefined {
|
||||
const merged = new Map<string, [string, string]>();
|
||||
for (const source of headerSources) {
|
||||
for (const [name, value] of Object.entries(source ?? {})) {
|
||||
const normalizedName = name.toLowerCase();
|
||||
merged.delete(normalizedName);
|
||||
if (value !== null) merged.set(normalizedName, [name, value]);
|
||||
}
|
||||
}
|
||||
return Object.keys(result).length > 0 ? result : undefined;
|
||||
return merged.size > 0 ? Object.fromEntries(merged.values()) : undefined;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user