UNPKG

redis-smq-rest-api

Version:
42 lines 1.46 kB
import * as path from 'path/posix'; const resourcePath = []; const resourceTags = []; function isResourceDescription(c) { return !!c && typeof c === 'object' && Object.keys(c).includes('handler'); } function getResourceControllerParams(controller) { const controllerName = controller.name; const controllerRoutePath = path.resolve(...resourcePath); return { controllerRoutePath, controllerName, controller, }; } function getResourceTags() { return resourceTags.filter((i) => i.length).at(-1); } export async function parseRoutingMap(routingMap, fn) { if (routingMap instanceof Array) { for (const item of routingMap) { await parseRoutingMap(item, fn); } } else { if (isResourceDescription(routingMap)) { const { handler, description, method, payload } = routingMap; const { controller, controllerName, controllerRoutePath } = getResourceControllerParams(handler); const tags = getResourceTags(); await fn(controller, controllerName, method, payload, controllerRoutePath, description, tags); } else { const { path, tags = [], resource } = routingMap; resourcePath.push(path); resourceTags.push(tags); await parseRoutingMap(resource, fn); resourcePath.pop(); resourceTags.pop(); } } } //# sourceMappingURL=parser.js.map