mirror of
https://github.com/spacebarchat/server.git
synced 2026-10-23 00:03:05 +00:00
Cut down schemas by 90%
This commit is contained in:
1 parent
60a24f0e39
commit
2ebe2a57fb
16 files changed
+302
-82
No files matched your search
@@ -2,7 +2,7 @@ const express = require("express");
|
||||
const path = require("path");
|
||||
const { traverseDirectory } = require("lambert-server");
|
||||
const RouteUtility = require("../../dist/api/util/handlers/route.js");
|
||||
const { bgRedBright } = require("picocolors");
|
||||
const { bgRedBright, greenBright, yellowBright, blueBright, redBright, underline, bold } = require("picocolors");
|
||||
|
||||
const methods = ["get", "post", "put", "delete", "patch"];
|
||||
const routes = new Map();
|
||||
@@ -14,23 +14,47 @@ let currentPath = "";
|
||||
If someone could fix that I'd really appreciate it, but for now just, don't do that :p
|
||||
*/
|
||||
|
||||
function colorizeMethod(method) {
|
||||
switch (method.toLowerCase()) {
|
||||
case "get":
|
||||
return greenBright(method.toUpperCase());
|
||||
case "post":
|
||||
return yellowBright(method.toUpperCase());
|
||||
case "put":
|
||||
return blueBright(method.toUpperCase());
|
||||
case "delete":
|
||||
return redBright(method.toUpperCase());
|
||||
case "patch":
|
||||
return yellowBright(method.toUpperCase());
|
||||
default:
|
||||
return method.toUpperCase();
|
||||
}
|
||||
}
|
||||
|
||||
function formatPath(path) {
|
||||
return path
|
||||
.replace(/:(\w+)/g, underline(":$1"))
|
||||
.replace(/#(\w+)/g, underline("#$1"))
|
||||
;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param {string} file
|
||||
* @param {string} method
|
||||
* @param {string} prefix
|
||||
* @param {string} path
|
||||
* @param {string} apiMethod
|
||||
* @param {string} apiPathPrefix
|
||||
* @param {string} apiPath
|
||||
* @param args
|
||||
*/
|
||||
function proxy(file, method, prefix, path, ...args) {
|
||||
function proxy(file, apiMethod, apiPathPrefix, apiPath, ...args) {
|
||||
const opts = args.find((x) => x?.prototype?.OPTS_MARKER == true);
|
||||
if (!opts)
|
||||
return console.error(
|
||||
`${bgRedBright("ERROR")} ${file} has route without route() description middleware`,
|
||||
` \x1b[5m${bgRedBright("ERROR")}\x1b[25m ${file.replace(path.resolve(__dirname, "..", "..", "dist"), "/src/")} has route without route() description middleware: ${colorizeMethod(apiMethod)} ${formatPath(apiPath)}`,
|
||||
);
|
||||
|
||||
console.log(`${method.toUpperCase().padStart("OPTIONS".length)} ${prefix + path}`);
|
||||
console.log(`${colorizeMethod(apiMethod).padStart("DELETE".length + 10)} ${formatPath(apiPathPrefix + apiPath)}`);
|
||||
opts.file = file.replace("/dist/", "/src/").replace(".js", ".ts");
|
||||
routes.set(prefix + path + "|" + method, opts());
|
||||
routes.set(apiPathPrefix + apiPath + "|" + apiMethod, opts());
|
||||
}
|
||||
|
||||
express.Router = () => {
|
||||
@@ -56,7 +80,7 @@ module.exports = function getRouteDescriptions() {
|
||||
currentFile = file;
|
||||
|
||||
currentPath = file.replace(root.slice(0, -1), "");
|
||||
currentPath = currentPath.split(".").slice(0, -1).join("."); // trancate .js/.ts file extension of path
|
||||
currentPath = currentPath.split(".").slice(0, -1).join("."); // truncate .js/.ts file extension of path
|
||||
currentPath = currentPath.replaceAll("#", ":").replaceAll("\\", "/"); // replace # with : for path parameters and windows paths with slashes
|
||||
if (currentPath.endsWith("/index"))
|
||||
currentPath = currentPath.slice(0, "/index".length * -1); // delete index from path
|
||||
|
||||
Reference in new issue
Block a user