*Add temp hack to filter out inline source maps

This commit is contained in:
Derrick Hammer 2022-08-13 13:16:53 -04:00
parent 2450390229
commit 67d94d1c47
Signed by: pcfreak30
GPG Key ID: C997C339BE476FF2
1 changed files with 34 additions and 25 deletions

View File

@ -103,9 +103,11 @@ export default class IpfsProvider extends BaseProvider {
return false;
}
async handleProxy(details: OnRequestDetailsType): Promise<any> {
return requestProxies;
}
async handleReqHeaders(
details: OnBeforeSendHeadersDetailsType
): Promise<BlockingResponse | boolean> {
@ -247,35 +249,42 @@ export default class IpfsProvider extends BaseProvider {
if (buffer.length) {
let mode = contentModes[contentType as string];
if (mode === CONTENT_MODE_BUFFERED) {
filter.write(
Uint8Array.from(
buffer.reduce(
(previousValue: Uint8Array, currentValue: Uint8Array) => {
return Uint8Array.from([...previousValue, ...currentValue]);
}
)
let data: string | Uint8Array = Uint8Array.from(
buffer.reduce(
(previousValue: Uint8Array, currentValue: Uint8Array) => {
return Uint8Array.from([...previousValue, ...currentValue]);
}
)
);
if (contentType === "application/javascript") {
data = new TextDecoder("utf-8", { fatal: true }).decode(data);
data = data.replace(
/\/\/#\s*sourceMappingURL=([^\.]+)\.js.map/,
""
);
data = new TextEncoder().encode(data);
}
filter.write(data);
} else if (mode == CONTENT_MODE_CHUNKED) {
buffer.forEach(filter.write);
buffer.forEach((data) => filter.write(data));
}
}
filter.close();
})
.catch((e) => {
console.log("page error", urlPath, e.message);
console.error("page error", urlPath, e.message);
/* if (
urlPath.endsWith(".html") ||
urlPath.endsWith(".htm") ||
urlPath.endsWith(".xhtml") ||
urlPath.endsWith(".shtml")
) {
this.setData(details, "contentType", "text/html");
let template = serverErrorTemplate();
contentLength = template.length;
receiveUpdate(new TextEncoder().encode(template));
this.setData(details, "contentLength", contentLength);
}*/
urlPath.endsWith(".html") ||
urlPath.endsWith(".htm") ||
urlPath.endsWith(".xhtml") ||
urlPath.endsWith(".shtml")
) {
this.setData(details, "contentType", "text/html");
let template = serverErrorTemplate();
contentLength = template.length;
receiveUpdate(new TextEncoder().encode(template));
this.setData(details, "contentLength", contentLength);
}*/
filterPromise.then(() => streamPromise).then(() => filter.close());
});
@ -294,11 +303,11 @@ export default class IpfsProvider extends BaseProvider {
});
/* if (contentLength) {
headers.push({
name: "content-length",
value: contentLength,
});
}*/
headers.push({
name: "content-length",
value: contentLength,
});
}*/
return {
responseHeaders: headers,