redis-smq-rest-api
Version:
A RESTful API for RedisSMQ
30 lines • 1.18 kB
JavaScript
import { parseRoutingMap } from '../router/parser.js';
let openApiRoutes = null;
async function handleResource(controllerName, method, payload, routePath, schema, description, tags) {
const requestParametersSchema = schema.getRequestSchemas(controllerName, payload);
const responseSchema = [
...schema.getResponseSchemas(controllerName).values(),
].map((i) => [i.responseCode, i.schema]);
return {
path: routePath
.split('/')
.map((i) => (i.startsWith(':') ? `{${i.slice(1)}}` : i))
.join('/'),
method,
requestParamsSchemas: requestParametersSchema,
response: responseSchema,
description,
tags,
};
}
export async function getOpenApiRoutes(routingMap, schema) {
if (!openApiRoutes) {
openApiRoutes = [];
await parseRoutingMap(routingMap, async (controller, controllerName, method, payload, path, description, tags) => {
const i = await handleResource(controllerName, method, payload, path, schema, description, tags);
openApiRoutes?.push(i);
});
}
return openApiRoutes;
}
//# sourceMappingURL=adaptor.js.map