Files
dev/third_party/pi/packages/ai/src/utils/headers.ts
alexion 6081e3e325 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
2026-10-15 17:58:48 -04:00

24 lines
783 B
TypeScript

import type { ProviderHeaders } from "../types.ts";
export function headersToRecord(headers: Headers): Record<string, string> {
const result: Record<string, string> = {};
for (const [key, value] of headers.entries()) {
result[key] = value;
}
return result;
}
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 merged.size > 0 ? Object.fromEntries(merged.values()) : undefined;
}