cleanup
All checks were successful
Publish Docker Images / docker (push) Successful in 1m32s

This commit is contained in:
Lee 2023-11-17 09:17:12 +00:00
parent c0c0a3d5b0
commit bde1fc4572
2 changed files with 13 additions and 18 deletions

@ -4,9 +4,6 @@ FROM fascinated/docker-images:node-pnpm-latest AS base
# Make sure you update this Dockerfile, the Dockerfile in the web workspace and copy that over to Dockerfile in the docs. # Make sure you update this Dockerfile, the Dockerfile in the web workspace and copy that over to Dockerfile in the docs.
FROM base AS builder FROM base AS builder
# Check https://github.com/nodejs/docker-node/tree/b4117f9333da4138b03a546ec926ef50a31506c3#nodealpine to understand why libc6-compat might be needed.
RUN apk add --no-cache libc6-compat
RUN apk update
# Set working directory # Set working directory
WORKDIR /app WORKDIR /app
RUN pnpm install -g turbo RUN pnpm install -g turbo

@ -125,18 +125,16 @@ export default class ProxyRoute extends Route {
try { try {
const cachedRequest = cache.get<CachedRequest>(url); const cachedRequest = cache.get<CachedRequest>(url);
if (cachedRequest) { if (cachedRequest) {
res const { status, headers, data, nodeId } = cachedRequest;
.status(cachedRequest.status)
.set(cachedRequest.headers) res.status(status).set(headers).json(data);
.json(cachedRequest.data); log(nodeId, url, status, true);
log(cachedRequest.nodeId, url, cachedRequest.status, true); return logRequestToDatabase({
logRequestToDatabase({ nodeId: nodeId,
nodeId: cachedRequest.nodeId,
url, url,
status: cachedRequest.status, status: status,
cached: true, cached: true,
}); });
return;
} }
const node = nodeManager.getRandomNode(); const node = nodeManager.getRandomNode();
@ -150,29 +148,29 @@ export default class ProxyRoute extends Route {
const before = Date.now(); const before = Date.now();
const response = await node.fetch(url); const response = await node.fetch(url);
const nodeId = response.headers["x-proxy-node"]; const nodeId = response.headers["x-proxy-node"];
const data = response.data; const { status, headers, data } = response;
if (response.status === 500) { if (response.status === 500) {
res.status(500).json(RouteMessages.internalServerError(data)); res.status(500).json(RouteMessages.internalServerError(data));
return; return;
} }
log(nodeId, url, response.status, Date.now() - before); log(nodeId, url, status, Date.now() - before);
logRequestToDatabase({ logRequestToDatabase({
nodeId, nodeId,
url, url,
status: response.status, status: status,
time: Date.now() - before, time: Date.now() - before,
}); });
cache.set(url, { cache.set(url, {
nodeId: nodeId, nodeId: nodeId,
status: response.status, status: status,
headers: response.headers, headers: headers,
data: data, data: data,
} as CachedRequest); } as CachedRequest);
// Send the response to the client // Send the response to the client
res.status(response.status).set(response.headers).send(data); res.status(status).set(headers).send(data);
} catch (ex: any) { } catch (ex: any) {
res.status(500).json(RouteMessages.internalServerError(ex.message || ex)); res.status(500).json(RouteMessages.internalServerError(ex.message || ex));
} }