Template base para proyectos SaaS multi-tenant. Estructura inicial: - apps/backend (NestJS API) - apps/frontend (React/Vite) - apps/database (PostgreSQL DDL) - docs/ (Documentación) 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
23 lines
1.1 KiB
JavaScript
23 lines
1.1 KiB
JavaScript
"use strict";
|
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
exports.SwaggerTransformer = void 0;
|
|
const lodash_1 = require("lodash");
|
|
const sort_object_lexicographically_1 = require("./utils/sort-object-lexicographically");
|
|
class SwaggerTransformer {
|
|
normalizePaths(denormalizedDoc) {
|
|
const roots = (0, lodash_1.filter)(denormalizedDoc, (r) => r.root);
|
|
const groupedByPath = (0, lodash_1.groupBy)(roots, ({ root }) => root.path);
|
|
const paths = (0, lodash_1.mapValues)(groupedByPath, (routes) => {
|
|
const keyByMethod = (0, lodash_1.keyBy)(routes, ({ root }) => root.method);
|
|
return (0, lodash_1.mapValues)(keyByMethod, (route) => {
|
|
const mergedDefinition = Object.assign(Object.assign({}, (0, lodash_1.omit)(route, 'root')), (0, lodash_1.omit)(route.root, ['method', 'path']));
|
|
return (0, sort_object_lexicographically_1.sortObjectLexicographically)(mergedDefinition);
|
|
});
|
|
});
|
|
return {
|
|
paths
|
|
};
|
|
}
|
|
}
|
|
exports.SwaggerTransformer = SwaggerTransformer;
|