diff --git a/api/src/middlewares/Authentication.ts b/api/src/middlewares/Authentication.ts
index 5a082751..59a181e6 100644
--- a/api/src/middlewares/Authentication.ts
+++ b/api/src/middlewares/Authentication.ts
@@ -9,6 +9,8 @@ export const NO_AUTHORIZATION_ROUTES = [
"/ping",
"/gateway",
"/experiments",
+ "/-/readyz",
+ "/-/healthz",
/\/guilds\/\d+\/widget\.(json|png)/
];
diff --git a/api/src/routes/-/healthz.ts b/api/src/routes/-/healthz.ts
new file mode 100644
index 00000000..a42575f8
--- /dev/null
+++ b/api/src/routes/-/healthz.ts
@@ -0,0 +1,17 @@
+import { Router, Response, Request } from "express";
+import { route } from "@fosscord/api";
+import { getConnection } from "typeorm";
+
+const router = Router();
+
+router.get("/", route({}), (req: Request, res: Response) => {
+ try {
+ // test that the database is alive & responding
+ getConnection();
+ return res.sendStatus(200);
+ } catch(e) {
+ res.sendStatus(503);
+ }
+});
+
+export default router;
diff --git a/api/src/routes/-/readyz.ts b/api/src/routes/-/readyz.ts
new file mode 100644
index 00000000..a42575f8
--- /dev/null
+++ b/api/src/routes/-/readyz.ts
@@ -0,0 +1,17 @@
+import { Router, Response, Request } from "express";
+import { route } from "@fosscord/api";
+import { getConnection } from "typeorm";
+
+const router = Router();
+
+router.get("/", route({}), (req: Request, res: Response) => {
+ try {
+ // test that the database is alive & responding
+ getConnection();
+ return res.sendStatus(200);
+ } catch(e) {
+ res.sendStatus(503);
+ }
+});
+
+export default router;
diff --git a/bundle/scripts/build.js b/bundle/scripts/build.js
index dfbaec15..dbc305a9 100644
--- a/bundle/scripts/build.js
+++ b/bundle/scripts/build.js
@@ -8,12 +8,12 @@ const dirs = ["api", "util", "cdn", "gateway", "bundle"];
const verbose = argv.includes("verbose") || argv.includes("v");
-if(argv.includes("clean")){
- dirs.forEach(a=>{
- var d = "../"+a+"/dist";
- if(fse.existsSync(d)) {
- fse.rmSync(d,{recursive: true});
- if(verbose) console.log(`Deleted ${d}!`);
+if (argv.includes("clean")) {
+ dirs.forEach((a) => {
+ var d = "../" + a + "/dist";
+ if (fse.existsSync(d)) {
+ fse.rmSync(d, { recursive: true });
+ if (verbose) console.log(`Deleted ${d}!`);
}
});
}
@@ -24,9 +24,9 @@ fse.copySync(
path.join(__dirname, "..", "dist", "api", "client_test")
);
fse.copySync(path.join(__dirname, "..", "..", "api", "locales"), path.join(__dirname, "..", "dist", "api", "locales"));
-dirs.forEach(a=>{
- fse.copySync("../"+a+"/src", "dist/"+a+"/src");
- if(verbose) console.log(`Copied ${"../"+a+"/dist"} -> ${"dist/"+a+"/src"}!`);
+dirs.forEach((a) => {
+ fse.copySync("../" + a + "/src", "dist/" + a + "/src");
+ if (verbose) console.log(`Copied ${"../" + a + "/dist"} -> ${"dist/" + a + "/src"}!`);
});
console.log("Copying src files done");
@@ -34,10 +34,11 @@ console.log("Compiling src files ...");
console.log(
execSync(
- "node \"" +
+ 'node "' +
path.join(__dirname, "..", "node_modules", "typescript", "lib", "tsc.js") +
- "\" -p \"" +
- path.join(__dirname, "..") + "\"",
+ '" -p "' +
+ path.join(__dirname, "..") +
+ '"',
{
cwd: path.join(__dirname, ".."),
shell: true,
|