melhoria em tipagem rota

This commit is contained in:
Luiz Silva 2025-03-28 10:07:37 -03:00
parent d628f0fc32
commit 457973873b
5 changed files with 16 additions and 35 deletions

20
dist/tipagemRotas.js vendored
View file

@ -15,29 +15,19 @@ class TipagemRotas {
/** Ao criar novo obijeto de tipagem de rota é necessário passar o caminho parcial
** export const mCaminho = new TipagemRotas<{q:string}>("aplicacao","funcionalidade")
*/
constructor({ caminhos, acaoIr, }) {
constructor({ caminho, acaoIr, }) {
this._partesCaminho = [];
this._acaoIr = acaoIr;
[Array.isArray(caminhos) ? caminhos : [caminhos]].forEach((caminho) => {
String(caminho)
.split("/")
.forEach((parte) => {
if (parte) {
this._partesCaminho.push(parte);
}
});
});
this._partesCaminho = (Array.isArray(caminho) ? caminho : [caminho])
.flatMap((a) => a.split("/"))
.filter(Boolean);
}
/** Retorna o caminho completo da rota
** console.log(mCaminho.caminho)
** "/caminho"
*/
get caminho() {
let ret = `/${this._partesCaminho.join("/")}`;
ret = ret.replace(/\/+/g, "/");
if (ret.length > 1 && ret.endsWith("/")) {
ret = ret.slice(0, -1);
}
const ret = `/${this._partesCaminho.join("/")}`;
return ret;
}
/** Define o caminho completo da rota