@ismael1361/router 1.1.1 → 1.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/HandleError.esm.js +126 -1
- package/dist/HandleError.esm.js.map +1 -1
- package/dist/HandleError.js +128 -1
- package/dist/HandleError.js.map +1 -1
- package/dist/Layer.esm.js +250 -1
- package/dist/Layer.esm.js.map +1 -1
- package/dist/Layer.js +252 -1
- package/dist/Layer.js.map +1 -1
- package/dist/Middlewares.esm.js +187 -1
- package/dist/Middlewares.esm.js.map +1 -1
- package/dist/Middlewares.js +194 -1
- package/dist/Middlewares.js.map +1 -1
- package/dist/handler.esm.js +170 -1
- package/dist/handler.esm.js.map +1 -1
- package/dist/handler.js +173 -1
- package/dist/handler.js.map +1 -1
- package/dist/index.esm.js +141 -1
- package/dist/index.esm.js.map +1 -1
- package/dist/index.js +152 -1
- package/dist/index.js.map +1 -1
- package/dist/middleware.esm.js +151 -1
- package/dist/middleware.esm.js.map +1 -1
- package/dist/middleware.js +154 -1
- package/dist/middleware.js.map +1 -1
- package/dist/node_modules/tslib/tslib.es6.esm.js +45 -1
- package/dist/node_modules/tslib/tslib.es6.esm.js.map +1 -1
- package/dist/node_modules/tslib/tslib.es6.js +48 -1
- package/dist/node_modules/tslib/tslib.es6.js.map +1 -1
- package/dist/redocUi/index.esm.js +74 -1
- package/dist/redocUi/index.esm.js.map +1 -1
- package/dist/redocUi/index.js +76 -1
- package/dist/redocUi/index.js.map +1 -1
- package/dist/router.esm.js +434 -1
- package/dist/router.esm.js.map +1 -1
- package/dist/router.js +436 -1
- package/dist/router.js.map +1 -1
- package/dist/swagger-markdown/index.esm.js +128 -1
- package/dist/swagger-markdown/index.esm.js.map +1 -1
- package/dist/swagger-markdown/index.js +134 -1
- package/dist/swagger-markdown/index.js.map +1 -1
- package/dist/swagger-markdown/lib/anchor.esm.js +6 -1
- package/dist/swagger-markdown/lib/anchor.esm.js.map +1 -1
- package/dist/swagger-markdown/lib/anchor.js +8 -1
- package/dist/swagger-markdown/lib/anchor.js.map +1 -1
- package/dist/swagger-markdown/lib/inArray.esm.js +20 -1
- package/dist/swagger-markdown/lib/inArray.esm.js.map +1 -1
- package/dist/swagger-markdown/lib/inArray.js +22 -1
- package/dist/swagger-markdown/lib/inArray.js.map +1 -1
- package/dist/swagger-markdown/models/schema.esm.js +64 -1
- package/dist/swagger-markdown/models/schema.esm.js.map +1 -1
- package/dist/swagger-markdown/models/schema.js +66 -1
- package/dist/swagger-markdown/models/schema.js.map +1 -1
- package/dist/swagger-markdown/transformers/contact.esm.js +23 -1
- package/dist/swagger-markdown/transformers/contact.esm.js.map +1 -1
- package/dist/swagger-markdown/transformers/contact.js +25 -1
- package/dist/swagger-markdown/transformers/contact.js.map +1 -1
- package/dist/swagger-markdown/transformers/dataTypes.esm.js +59 -1
- package/dist/swagger-markdown/transformers/dataTypes.esm.js.map +1 -1
- package/dist/swagger-markdown/transformers/dataTypes.js +61 -1
- package/dist/swagger-markdown/transformers/dataTypes.js.map +1 -1
- package/dist/swagger-markdown/transformers/definitions.esm.js +75 -1
- package/dist/swagger-markdown/transformers/definitions.esm.js.map +1 -1
- package/dist/swagger-markdown/transformers/definitions.js +80 -1
- package/dist/swagger-markdown/transformers/definitions.js.map +1 -1
- package/dist/swagger-markdown/transformers/externalDocs.esm.js +13 -1
- package/dist/swagger-markdown/transformers/externalDocs.esm.js.map +1 -1
- package/dist/swagger-markdown/transformers/externalDocs.js +15 -1
- package/dist/swagger-markdown/transformers/externalDocs.js.map +1 -1
- package/dist/swagger-markdown/transformers/info.esm.js +36 -1
- package/dist/swagger-markdown/transformers/info.esm.js.map +1 -1
- package/dist/swagger-markdown/transformers/info.js +38 -1
- package/dist/swagger-markdown/transformers/info.js.map +1 -1
- package/dist/swagger-markdown/transformers/license.esm.js +20 -1
- package/dist/swagger-markdown/transformers/license.esm.js.map +1 -1
- package/dist/swagger-markdown/transformers/license.js +22 -1
- package/dist/swagger-markdown/transformers/license.js.map +1 -1
- package/dist/swagger-markdown/transformers/path.esm.js +71 -1
- package/dist/swagger-markdown/transformers/path.esm.js.map +1 -1
- package/dist/swagger-markdown/transformers/path.js +76 -1
- package/dist/swagger-markdown/transformers/path.js.map +1 -1
- package/dist/swagger-markdown/transformers/pathParameters.esm.js +62 -1
- package/dist/swagger-markdown/transformers/pathParameters.esm.js.map +1 -1
- package/dist/swagger-markdown/transformers/pathParameters.js +64 -1
- package/dist/swagger-markdown/transformers/pathParameters.js.map +1 -1
- package/dist/swagger-markdown/transformers/pathResponses.esm.js +45 -1
- package/dist/swagger-markdown/transformers/pathResponses.esm.js.map +1 -1
- package/dist/swagger-markdown/transformers/pathResponses.js +47 -1
- package/dist/swagger-markdown/transformers/pathResponses.js.map +1 -1
- package/dist/swagger-markdown/transformers/security.esm.js +41 -1
- package/dist/swagger-markdown/transformers/security.esm.js.map +1 -1
- package/dist/swagger-markdown/transformers/security.js +43 -1
- package/dist/swagger-markdown/transformers/security.js.map +1 -1
- package/dist/swagger-markdown/transformers/securityDefinitions.esm.js +51 -1
- package/dist/swagger-markdown/transformers/securityDefinitions.esm.js.map +1 -1
- package/dist/swagger-markdown/transformers/securityDefinitions.js +57 -1
- package/dist/swagger-markdown/transformers/securityDefinitions.js.map +1 -1
- package/dist/utils.esm.js +244 -1
- package/dist/utils.esm.js.map +1 -1
- package/dist/utils.js +256 -1
- package/dist/utils.js.map +1 -1
- package/package.json +2 -2
package/dist/utils.js
CHANGED
|
@@ -1,2 +1,257 @@
|
|
|
1
|
-
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var tslib_es6 = require('./node_modules/tslib/tslib.es6.js');
|
|
4
|
+
var HandleError = require('./HandleError.js');
|
|
5
|
+
var fs = require('fs');
|
|
6
|
+
var utils = require('@ismael1361/utils');
|
|
7
|
+
var path = require('path');
|
|
8
|
+
|
|
9
|
+
const isConstructedObject = (value) => {
|
|
10
|
+
return typeof value === "object" && value !== null && value.constructor !== Object;
|
|
11
|
+
};
|
|
12
|
+
const joinObject = (obj, ...objs) => {
|
|
13
|
+
if (!Array.isArray(obj) && isConstructedObject(obj)) {
|
|
14
|
+
return obj;
|
|
15
|
+
}
|
|
16
|
+
const result = {};
|
|
17
|
+
[obj, ...objs]
|
|
18
|
+
.filter((o) => !(!Array.isArray(0) && isConstructedObject(0)) && Object.keys(o).length > 0)
|
|
19
|
+
.forEach((o) => {
|
|
20
|
+
var _a, _b;
|
|
21
|
+
for (let key in o) {
|
|
22
|
+
if (o[key] === undefined) {
|
|
23
|
+
continue;
|
|
24
|
+
}
|
|
25
|
+
if (o[key] === null || (!Array.isArray(o[key]) && isConstructedObject(o[key]))) {
|
|
26
|
+
result[key] = o[key];
|
|
27
|
+
continue;
|
|
28
|
+
}
|
|
29
|
+
if (Array.isArray(o[key])) {
|
|
30
|
+
result[key] = [...((_a = result[key]) !== null && _a !== void 0 ? _a : []), ...o[key]].filter((v, i, l) => {
|
|
31
|
+
return i === l.findIndex((v2) => utils.deepEqual(v2, v));
|
|
32
|
+
});
|
|
33
|
+
continue;
|
|
34
|
+
}
|
|
35
|
+
else if (typeof o[key] === "object") {
|
|
36
|
+
result[key] = joinObject(((_b = result[key]) !== null && _b !== void 0 ? _b : {}), o[key]);
|
|
37
|
+
continue;
|
|
38
|
+
}
|
|
39
|
+
result[key] = o[key];
|
|
40
|
+
}
|
|
41
|
+
});
|
|
42
|
+
return result;
|
|
43
|
+
};
|
|
44
|
+
const joinPath = (...paths) => {
|
|
45
|
+
return ["", ...paths.map((p) => p.replace(/(^\/+)|(\/+$)/gi, "")).filter((p) => p.trim() !== "")].join("/");
|
|
46
|
+
};
|
|
47
|
+
const getDocHandles = (...handles) => {
|
|
48
|
+
return handles.map((handle) => handle.doc).filter((doc) => doc !== undefined).filter((d) => Object.keys(d).length > 0);
|
|
49
|
+
};
|
|
50
|
+
const joinDocs = (...docs) => {
|
|
51
|
+
return docs
|
|
52
|
+
.filter((d) => Object.keys(d).length > 0)
|
|
53
|
+
.reduce((previous, current) => {
|
|
54
|
+
return joinObject(previous, current);
|
|
55
|
+
}, {});
|
|
56
|
+
};
|
|
57
|
+
const omit = (obj, ...keys) => {
|
|
58
|
+
return Object.fromEntries(Object.entries(obj).filter(([key]) => !keys.includes(key)));
|
|
59
|
+
};
|
|
60
|
+
/**
|
|
61
|
+
* Percorre recursivamente um roteador Express para extrair uma lista de todas as rotas e middlewares.
|
|
62
|
+
* A função identifica rotas, sub-roteadores e middlewares, normalizando seus caminhos e
|
|
63
|
+
* extraindo métodos HTTP e documentação Swagger, se disponível no handler.
|
|
64
|
+
*
|
|
65
|
+
* @param {ExpressRouter} router A instância do roteador Express a ser inspecionada.
|
|
66
|
+
* @param {string} [basePath=""] Um caminho base para prefixar todas as rotas encontradas, útil para roteadores aninhados.
|
|
67
|
+
* @returns {Array<{path: string, methods: string[], type: 'ROUTE' | 'MIDDLEWARE', swagger?: object}>} Uma matriz de objetos representando cada rota ou middleware.
|
|
68
|
+
*
|
|
69
|
+
* @example
|
|
70
|
+
* // Suponha a seguinte configuração de rotas:
|
|
71
|
+
* const mainRouter = Express.Router();
|
|
72
|
+
* const userRouter = Express.Router();
|
|
73
|
+
*
|
|
74
|
+
* const getUserHandler = (req, res) => res.send('User data');
|
|
75
|
+
* // Anexa a documentação Swagger ao handler
|
|
76
|
+
* (getUserHandler as any).swagger = (path: string) => ({
|
|
77
|
+
* paths: { [path]: { get: { summary: 'Get a specific user' } } }
|
|
78
|
+
* });
|
|
79
|
+
*
|
|
80
|
+
* userRouter.get('/:id', getUserHandler);
|
|
81
|
+
* mainRouter.use('/users', userRouter);
|
|
82
|
+
*
|
|
83
|
+
* const routesInfo = getRoutes(mainRouter);
|
|
84
|
+
* console.log(routesInfo);
|
|
85
|
+
* // Saída esperada (simplificada):
|
|
86
|
+
* // [
|
|
87
|
+
* // { path: '/users/{id}/', methods: ['GET'], type: 'ROUTE', swagger: { ... } }
|
|
88
|
+
* // ]
|
|
89
|
+
*/
|
|
90
|
+
const getRoutes = (router, basePath = "") => {
|
|
91
|
+
try {
|
|
92
|
+
let routes = router.routes.map((layer) => {
|
|
93
|
+
const { path, method, doc } = layer;
|
|
94
|
+
const p = joinPath(basePath, path);
|
|
95
|
+
return {
|
|
96
|
+
path: p,
|
|
97
|
+
methods: [method],
|
|
98
|
+
type: "ROUTE",
|
|
99
|
+
swagger: {
|
|
100
|
+
paths: { [p]: { [method]: (doc === null || doc === void 0 ? void 0 : doc.operation) || {} } },
|
|
101
|
+
components: (doc === null || doc === void 0 ? void 0 : doc.components) || {},
|
|
102
|
+
},
|
|
103
|
+
};
|
|
104
|
+
});
|
|
105
|
+
return routes;
|
|
106
|
+
}
|
|
107
|
+
catch (e) {
|
|
108
|
+
// console.error(e);
|
|
109
|
+
}
|
|
110
|
+
return [];
|
|
111
|
+
};
|
|
112
|
+
/**
|
|
113
|
+
* Envolve um middleware Express com um manipulador de erros (try-catch) centralizado.
|
|
114
|
+
* Se o handler lançar um erro, esta função o captura, formata uma resposta JSON padronizada
|
|
115
|
+
* e registra o erro. Ele lida com handlers síncronos e assíncronos (Promises).
|
|
116
|
+
*
|
|
117
|
+
* @param {MiddlewareFC<any, any>} handler O middleware a ser envolvido.
|
|
118
|
+
* @returns {MiddlewareFC<any, any>} Um novo middleware com tratamento de erro ou o handler original se for um roteador.
|
|
119
|
+
*
|
|
120
|
+
* @example
|
|
121
|
+
* // Esta função é usada internamente por `createDynamicMiddleware`.
|
|
122
|
+
* // Exemplo conceitual de como ela age:
|
|
123
|
+
*
|
|
124
|
+
* const myRiskyHandler: MiddlewareFC = (req, res, next) => {
|
|
125
|
+
* throw new HandleError("Algo deu errado!", 400);
|
|
126
|
+
* };
|
|
127
|
+
*
|
|
128
|
+
* // Em vez de usar `myRiskyHandler` diretamente, o sistema usa `tryHandler(myRiskyHandler)`.
|
|
129
|
+
* // Se `myRiskyHandler` for chamado, o erro será capturado e uma resposta como
|
|
130
|
+
* // { "message": "Algo deu errado!", "name": "HandleError", "code": 400 }
|
|
131
|
+
* // será enviada automaticamente.
|
|
132
|
+
*/
|
|
133
|
+
function tryHandler(handler) {
|
|
134
|
+
return typeof handler === "function" && !("stack" in handler)
|
|
135
|
+
? (req, res, next) => tslib_es6.__awaiter(this, void 0, void 0, function* () {
|
|
136
|
+
if (res.headersSent) {
|
|
137
|
+
return;
|
|
138
|
+
}
|
|
139
|
+
try {
|
|
140
|
+
yield new Promise((resolve) => setTimeout(resolve, 0));
|
|
141
|
+
const response = handler(req, res, next);
|
|
142
|
+
if (response instanceof Promise)
|
|
143
|
+
yield response;
|
|
144
|
+
}
|
|
145
|
+
catch (error) {
|
|
146
|
+
const code = error instanceof HandleError.HandleError && typeof error.cause === "number" ? error.code : 400;
|
|
147
|
+
const message = error instanceof HandleError.HandleError || error instanceof Error ? error.message : "Bad ExpressRequest";
|
|
148
|
+
const name = error instanceof HandleError.HandleError || error instanceof Error ? error.name : "Error";
|
|
149
|
+
const level = error instanceof HandleError.HandleError && typeof error.level === "string" ? error.level : "ERROR";
|
|
150
|
+
res.status(code).json({ message, name, code });
|
|
151
|
+
if (["ERROR", "WARN", "INFO"].includes(level)) {
|
|
152
|
+
const stack = error.stack || error;
|
|
153
|
+
if (level === "ERROR")
|
|
154
|
+
console.error(error);
|
|
155
|
+
if (level === "WARN")
|
|
156
|
+
console.warn(error);
|
|
157
|
+
fs.appendFileSync(path.join(process.cwd(), "stacks.log"), `time=${new Date().toISOString()} level=${level} message=${JSON.stringify(stack)}\n`);
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
})
|
|
161
|
+
: handler;
|
|
162
|
+
}
|
|
163
|
+
/**
|
|
164
|
+
* Cria um middleware dinâmico que adiciona funcionalidades extras a um middleware Express padrão.
|
|
165
|
+
* Funcionalidades adicionadas:
|
|
166
|
+
* 1. **Tratamento de Erros:** Envolve o middleware com `tryHandler` para captura centralizada de erros.
|
|
167
|
+
* 2. **Execução Única:** Previne que o mesmo middleware seja executado mais de uma vez na mesma requisição,
|
|
168
|
+
* útil para middlewares aplicados em roteadores aninhados. Fornece `req.executeOnce()` para controle.
|
|
169
|
+
* 3. **IP do Cliente:** Adiciona `req.clientIp` com o endereço de IP do cliente.
|
|
170
|
+
*
|
|
171
|
+
* @template Req - O tipo de objeto de requisição (Request) que o middleware espera.
|
|
172
|
+
* @template Res - O tipo de objeto de resposta (Response) que o middleware espera.
|
|
173
|
+
* @param {MiddlewareFC<Req, Res>} middleware O middleware original a ser aprimorado.
|
|
174
|
+
* @returns {MiddlewareFC<Req, Res>} O novo middleware aprimorado.
|
|
175
|
+
*
|
|
176
|
+
* @example
|
|
177
|
+
* // Middleware de autenticação que só deve rodar uma vez.
|
|
178
|
+
* const authMiddleware: MiddlewareFC<{ user: any }> = (req, res, next) => {
|
|
179
|
+
* // Garante que a lógica de autenticação não seja executada novamente.
|
|
180
|
+
* req.executeOnce();
|
|
181
|
+
* console.log('Verificando autenticação...');
|
|
182
|
+
* (req as any).user = { id: 123 };
|
|
183
|
+
* next();
|
|
184
|
+
* };
|
|
185
|
+
*
|
|
186
|
+
* // Em um roteador:
|
|
187
|
+
* router.use(authMiddleware); // Aplicado a todas as rotas
|
|
188
|
+
* router.get("/profile", authMiddleware, (req, res) => {
|
|
189
|
+
* // Mesmo sendo declarado duas vezes, o console.log só aparecerá uma vez.
|
|
190
|
+
* res.send(`Perfil do usuário: ${(req as any).user.id}, IP: ${req.clientIp}`);
|
|
191
|
+
* });
|
|
192
|
+
*/
|
|
193
|
+
function createDynamicMiddleware(middleware) {
|
|
194
|
+
middleware.doc = (middleware === null || middleware === void 0 ? void 0 : middleware.doc) || {};
|
|
195
|
+
if ("name" in middleware && middleware.name === "router") {
|
|
196
|
+
return middleware;
|
|
197
|
+
}
|
|
198
|
+
const callback = (req, res, next) => {
|
|
199
|
+
try {
|
|
200
|
+
const xForwardedFor = (req.headers["x-forwarded-for"] || "").replace(/:\d+$/, "");
|
|
201
|
+
req.clientIp = xForwardedFor || req.connection.remoteAddress;
|
|
202
|
+
}
|
|
203
|
+
catch (_a) { }
|
|
204
|
+
if (!(req.__executedMiddlewares__ instanceof Set))
|
|
205
|
+
req.__executedMiddlewares__ = new Set();
|
|
206
|
+
if (res.headersSent) {
|
|
207
|
+
return;
|
|
208
|
+
}
|
|
209
|
+
const executedSet = req.__executedMiddlewares__;
|
|
210
|
+
const id = typeof middleware.id === "string" ? middleware.id : middleware;
|
|
211
|
+
if (!executedSet.has(id)) {
|
|
212
|
+
req.executeOnce = (isOnce = true) => {
|
|
213
|
+
if (isOnce)
|
|
214
|
+
executedSet.add(id);
|
|
215
|
+
else
|
|
216
|
+
executedSet.delete(id);
|
|
217
|
+
};
|
|
218
|
+
tryHandler(middleware)(req, res, next);
|
|
219
|
+
}
|
|
220
|
+
else {
|
|
221
|
+
next();
|
|
222
|
+
}
|
|
223
|
+
};
|
|
224
|
+
callback.id = middleware.id || undefined;
|
|
225
|
+
callback.doc = middleware.doc || {};
|
|
226
|
+
return callback;
|
|
227
|
+
}
|
|
228
|
+
const getCorsOptions = (allowedOrigins) => {
|
|
229
|
+
return {
|
|
230
|
+
origin: allowedOrigins === "*" ? true : allowedOrigins === "" ? false : allowedOrigins.split(/,\s*/),
|
|
231
|
+
methods: "GET,PUT,POST,DELETE,OPTIONS",
|
|
232
|
+
allowedHeaders: "Content-Type, Authorization, Content-Length, Accept, Origin, X-Requested-With",
|
|
233
|
+
};
|
|
234
|
+
};
|
|
235
|
+
const getCorsHeaders = (allowedOrigins, currentOrigin) => {
|
|
236
|
+
const corsOptions = getCorsOptions(allowedOrigins);
|
|
237
|
+
const origins = typeof corsOptions.origin === "boolean" ? (corsOptions.origin ? currentOrigin !== null && currentOrigin !== void 0 ? currentOrigin : "*" : "") : corsOptions.origin instanceof Array ? corsOptions.origin.join(",") : corsOptions.origin;
|
|
238
|
+
return {
|
|
239
|
+
"Access-Control-Allow-Origin": origins,
|
|
240
|
+
"Access-Control-Allow-Methods": corsOptions.methods,
|
|
241
|
+
"Access-Control-Allow-Headers": corsOptions.allowedHeaders,
|
|
242
|
+
"Access-Control-Expose-Headers": "Content-Length, Content-Range",
|
|
243
|
+
};
|
|
244
|
+
};
|
|
245
|
+
|
|
246
|
+
exports.createDynamicMiddleware = createDynamicMiddleware;
|
|
247
|
+
exports.getCorsHeaders = getCorsHeaders;
|
|
248
|
+
exports.getCorsOptions = getCorsOptions;
|
|
249
|
+
exports.getDocHandles = getDocHandles;
|
|
250
|
+
exports.getRoutes = getRoutes;
|
|
251
|
+
exports.isConstructedObject = isConstructedObject;
|
|
252
|
+
exports.joinDocs = joinDocs;
|
|
253
|
+
exports.joinObject = joinObject;
|
|
254
|
+
exports.joinPath = joinPath;
|
|
255
|
+
exports.omit = omit;
|
|
256
|
+
exports.tryHandler = tryHandler;
|
|
2
257
|
//# sourceMappingURL=utils.js.map
|
package/dist/utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sources":["../src/utils.ts"],"sourcesContent":[null],"names":["
|
|
1
|
+
{"version":3,"file":"utils.js","sources":["../src/utils.ts"],"sourcesContent":[null],"names":["deepEqual","__awaiter","HandleError"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ismael1361/router",
|
|
3
|
-
"version": "1.1.
|
|
3
|
+
"version": "1.1.2",
|
|
4
4
|
"description": "A API of router functions built with TypeScript",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"module": "dist/index.esm.js",
|
|
@@ -24,7 +24,7 @@
|
|
|
24
24
|
"test": "jest",
|
|
25
25
|
"test:watch": "jest --watchAll",
|
|
26
26
|
"prepublishOnly": "npm run build && npm test",
|
|
27
|
-
"npm:publish": "npm
|
|
27
|
+
"npm:publish": "npm publish --access=public"
|
|
28
28
|
},
|
|
29
29
|
"keywords": [
|
|
30
30
|
"router",
|