Holy-Unblocker/bare/HeaderUtil.mjs
2022-02-25 22:56:50 -08:00

33 lines
No EOL
748 B
JavaScript

export function ObjectFromRawHeaders(raw){
const result = Object.setPrototypeOf({}, null);
for(let i = 0; i < raw.length; i += 2){
let [header,value] = raw.slice(i, i + 2);
if (result[header] != void[]) result[header] = [].concat(result[header], value);
else result[header] = value;
}
return result;
}
export function RawHeaderNames(raw){
const result = [];
for(let i = 0; i < raw.length; i += 2){
if(!result.includes(i))result.push(raw[i]);
}
return result;
}
export function MapHeaderNamesFromArray(/*Array*/ from, /*Object*/ to){
for(let header of from) {
if(to[header.toLowerCase()] != void[]){
const value = to[header.toLowerCase()];
delete to[header.toLowerCase()];
to[header] = value;
}
}
return to;
};