2020-10-21 06:05:58 +07:00
|
|
|
import proxyServer from "http-proxy"
|
2020-11-06 05:45:58 +07:00
|
|
|
import { HttpCode } from "../common/http"
|
2020-10-21 06:05:58 +07:00
|
|
|
|
|
|
|
export const proxy = proxyServer.createProxyServer({})
|
2020-11-06 05:45:58 +07:00
|
|
|
|
2020-10-21 06:05:58 +07:00
|
|
|
proxy.on("error", (error, _, res) => {
|
|
|
|
res.writeHead(HttpCode.ServerError)
|
|
|
|
res.end(error.message)
|
|
|
|
})
|
|
|
|
|
|
|
|
// Intercept the response to rewrite absolute redirects against the base path.
|
2021-02-05 14:31:18 +07:00
|
|
|
// Is disabled when the request has no base path which means /absproxy is in use.
|
2020-10-21 06:05:58 +07:00
|
|
|
proxy.on("proxyRes", (res, req) => {
|
|
|
|
if (res.headers.location && res.headers.location.startsWith("/") && (req as any).base) {
|
|
|
|
res.headers.location = (req as any).base + res.headers.location
|
|
|
|
}
|
|
|
|
})
|