diff --git a/src/api/routes.js b/src/api/routes.js
index e808d50..b91e7ba 100644
--- a/src/api/routes.js
+++ b/src/api/routes.js
@@ -1,13 +1,26 @@
import * as routes from './routes/index.js';
+import * as url from 'node:url';
+import express from 'express';
-function logHttpEntry(method, route, exampleBody, description) {
- if (description) console.log('%', '#', description);
+function logHttpEntry(method, route, routeMethod) {
+ if (routeMethod.description) console.log('%', '#', routeMethod.description);
console.log('%', method, '{{baseUrl}}' + route, 'HTTP/1.1');
- if (exampleBody) {
+ if (routeMethod.exampleHeaders) {
+ for (var key of Object.keys(routeMethod.exampleHeaders)) {
+ console.log('%', `${key}: ${routeMethod.exampleHeaders[key]}`);
+ }
+ }
+ if (routeMethod.exampleBody) {
console.log('%', 'Content-Type: application/json');
console.log('% ');
- console.log('%', JSON.stringify(exampleBody, null, 4));
+ console.log(
+ '%',
+ JSON.stringify(routeMethod.exampleBody, null, 4).replaceAll(
+ '\n',
+ '\n% '
+ )
+ );
console.log('% ');
}
console.log('% ');
@@ -24,12 +37,15 @@ export function registerRoutes(app) {
* @type {RouteDescription}
*/
const route = routes[routeName];
+ if (route === undefined) return;
Object.keys(route.methods).forEach(routeMethodName => {
/**
* @type {RouteMethod}
*/
const routeMethod = route.methods[routeMethodName];
+ if (routeMethod === undefined) return;
+
console.log(
'Registering',
routeMethodName.toUpperCase(),
@@ -38,7 +54,7 @@ export function registerRoutes(app) {
logHttpEntry(
routeMethodName.toUpperCase(),
route.path,
- routeMethod.exampleBody
+ routeMethod
);
app[routeMethodName](route.path, [
...routeMethod.middlewares,
@@ -50,3 +66,12 @@ export function registerRoutes(app) {
console.log(`Registered ${routeCount} routes.`);
}
+
+if (import.meta.url.startsWith('file:')) {
+ const modulePath = url.fileURLToPath(import.meta.url);
+ if (process.argv[1] === modulePath) {
+ const app = express();
+ registerRoutes(app);
+ process.exit(1);
+ }
+}
|