mirror of
https://github.com/GitbookIO/gitbook.git
synced 2026-10-01 22:49:14 +00:00
19 lines
654 B
TypeScript
19 lines
654 B
TypeScript
/**
|
|
* Merges two header objects, removing duplicate headers case-insensitively.
|
|
* Headers from the second object take precedence over headers from the first object.
|
|
*/
|
|
export function mergeHeaders(
|
|
baseHeaders: Record<string, string>,
|
|
overrideHeaders: Record<string, string>
|
|
): Record<string, string> {
|
|
const overrideKeysLower = new Set(Object.keys(overrideHeaders).map((key) => key.toLowerCase()));
|
|
const filteredBaseHeaders = Object.fromEntries(
|
|
Object.entries(baseHeaders).filter(([key]) => !overrideKeysLower.has(key.toLowerCase()))
|
|
);
|
|
|
|
return {
|
|
...filteredBaseHeaders,
|
|
...overrideHeaders,
|
|
};
|
|
}
|