fix localhost translation logic in printer service

This commit is contained in:
Amruth Pillai
2025-01-12 15:52:30 +01:00
parent 6708570c49
commit d0a174d7b7

View File

@ -104,14 +104,19 @@ export class PrinterService {
if ([publicUrl, storageUrl].some((url) => /https?:\/\/localhost(:\d+)?/.test(url))) {
// Switch client URL from `http[s]://localhost[:port]` to `http[s]://host.docker.internal[:port]` in development
// This is required because the browser is running in a container and the client is running on the host machine.
url = url.replace(/localhost(:\d+)?/, "host.docker.internal");
url = url.replace(
/localhost(:\d+)?/,
(_match, port) => `host.docker.internal${port ?? ""}`,
);
await page.setRequestInterception(true);
// Intercept requests of `localhost` to `host.docker.internal` in development
page.on("request", (request) => {
if (request.url().startsWith(storageUrl)) {
const modifiedUrl = request.url().replace(/localhost(:\d+)?/, "host.docker.internal");
const modifiedUrl = request
.url()
.replace(/localhost(:\d+)?/, (_match, port) => `host.docker.internal${port ?? ""}`);
void request.continue({ url: modifiedUrl });
} else {
@ -220,17 +225,19 @@ export class PrinterService {
let url = publicUrl;
if ([publicUrl, storageUrl].some((url) => url.includes("localhost"))) {
// Switch client URL from `localhost` to `host.docker.internal` in development
if ([publicUrl, storageUrl].some((url) => /https?:\/\/localhost(:\d+)?/.test(url))) {
// Switch client URL from `http[s]://localhost[:port]` to `http[s]://host.docker.internal[:port]` in development
// This is required because the browser is running in a container and the client is running on the host machine.
url = url.replace("localhost", "host.docker.internal");
url = url.replace(/localhost(:\d+)?/, (_match, port) => `host.docker.internal${port ?? ""}`);
await page.setRequestInterception(true);
// Intercept requests of `localhost` to `host.docker.internal` in development
page.on("request", (request) => {
if (request.url().startsWith(storageUrl)) {
const modifiedUrl = request.url().replace("localhost", `host.docker.internal`);
const modifiedUrl = request
.url()
.replace(/localhost(:\d+)?/, (_match, port) => `host.docker.internal${port ?? ""}`);
void request.continue({ url: modifiedUrl });
} else {