summary refs log tree commit diff
path: root/src/api/routes.js
diff options
context:
space:
mode:
Diffstat (limited to 'src/api/routes.js')
-rw-r--r--src/api/routes.js35
1 files changed, 30 insertions, 5 deletions
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); + } +}