14 lines
574 B
TypeScript
14 lines
574 B
TypeScript
export function byteStringResponseHeaders(headers: Record<string, string[]> = {}) {
|
|
return Object.fromEntries(Object.entries(headers).map(([name, values]) => [
|
|
name,
|
|
values.map((value) => value.replace(/[^\x00-\xff]+/gu, encodeURIComponent)),
|
|
]))
|
|
}
|
|
|
|
export function prepareFetchHeaders(target: Electron.Session) {
|
|
// Electron net.fetch throws outside its promise when a response header contains Unicode.
|
|
target.webRequest.onHeadersReceived((details, callback) => {
|
|
callback({ responseHeaders: byteStringResponseHeaders(details.responseHeaders) })
|
|
})
|
|
}
|