fix: Rest proxy error (#2471)

* Rebase Update on main

* Rebase Update on main

* Rebase Update on main

* Fix deno fmt

Co-authored-by: meister03 <meisterpi@gmail.com>
This commit is contained in:
meister03
2022-09-15 17:23:49 +02:00
committed by GitHub
parent d39abe147f
commit e431e0e044
2 changed files with 13 additions and 11 deletions

View File

@@ -23,6 +23,10 @@ export async function runMethod<T = any>(
}`,
);
const errorStack = new Error("Location:");
// @ts-ignore Breaks deno deploy. Luca said add ts-ignore until it's fixed
Error.captureStackTrace(errorStack);
// For proxies we don't need to do any of the legwork so we just forward the request
if (!baseEndpoints.BASE_URL.startsWith(BASE_URL) && route[0] === "/") {
const result = await fetch(`${baseEndpoints.BASE_URL}${route}`, {
@@ -36,16 +40,14 @@ export async function runMethod<T = any>(
if (!result.ok) {
const err = await result.json().catch(() => {});
throw new Error(`Error: ${err.message ?? result.statusText}`);
// Legacy Handling to not break old code or when body is missing
if (!err.body) throw new Error(`Error: ${err.message ?? result.statusText}`);
throw rest.convertRestError(errorStack, err);
}
return result.status !== 204 ? await result.json() : undefined;
}
const errorStack = new Error("Location:");
// @ts-ignore Breaks deno deploy. Luca said add ts-ignore until it's fixed
Error.captureStackTrace(errorStack);
// No proxy so we need to handle all rate limiting and such
return new Promise((resolve, reject) => {
rest.processRequest(

View File

@@ -55,6 +55,11 @@ if (INFLUX_TOKEN) {
}, 30000);
}
rest.convertRestError = (errorStack, data) => {
if (!data) return { message: errorStack.message };
return { ...data, message: errorStack.message };
};
const app = express();
app.use(
@@ -105,12 +110,7 @@ async function handleRequest(req: Request, res: Response) {
}
} catch (error: any) {
console.log(error);
if (error?.code) res.status(500).json(error);
else {
res.status(500).json({
error: error.message ?? "No error found at all what the hell discord.",
});
}
res.status(500).json(error);
}
}