melhoria em tipagem rota
This commit is contained in:
parent
d628f0fc32
commit
457973873b
5 changed files with 16 additions and 35 deletions
4
dist/tipagemRotas.d.ts
vendored
4
dist/tipagemRotas.d.ts
vendored
|
|
@ -16,8 +16,8 @@ export declare class TipagemRotas<T extends {
|
||||||
/** Ao criar novo obijeto de tipagem de rota é necessário passar o caminho parcial
|
/** Ao criar novo obijeto de tipagem de rota é necessário passar o caminho parcial
|
||||||
** export const mCaminho = new TipagemRotas<{q:string}>("aplicacao","funcionalidade")
|
** export const mCaminho = new TipagemRotas<{q:string}>("aplicacao","funcionalidade")
|
||||||
*/
|
*/
|
||||||
constructor({ caminhos, acaoIr, }: {
|
constructor({ caminho, acaoIr, }: {
|
||||||
caminhos: string[] | string;
|
caminho: string[] | string;
|
||||||
acaoIr?: undefined | ((endereco: string) => undefined);
|
acaoIr?: undefined | ((endereco: string) => undefined);
|
||||||
});
|
});
|
||||||
/** Retorna o caminho completo da rota
|
/** Retorna o caminho completo da rota
|
||||||
|
|
|
||||||
20
dist/tipagemRotas.js
vendored
20
dist/tipagemRotas.js
vendored
|
|
@ -15,29 +15,19 @@ class TipagemRotas {
|
||||||
/** Ao criar novo obijeto de tipagem de rota é necessário passar o caminho parcial
|
/** Ao criar novo obijeto de tipagem de rota é necessário passar o caminho parcial
|
||||||
** export const mCaminho = new TipagemRotas<{q:string}>("aplicacao","funcionalidade")
|
** export const mCaminho = new TipagemRotas<{q:string}>("aplicacao","funcionalidade")
|
||||||
*/
|
*/
|
||||||
constructor({ caminhos, acaoIr, }) {
|
constructor({ caminho, acaoIr, }) {
|
||||||
this._partesCaminho = [];
|
this._partesCaminho = [];
|
||||||
this._acaoIr = acaoIr;
|
this._acaoIr = acaoIr;
|
||||||
[Array.isArray(caminhos) ? caminhos : [caminhos]].forEach((caminho) => {
|
this._partesCaminho = (Array.isArray(caminho) ? caminho : [caminho])
|
||||||
String(caminho)
|
.flatMap((a) => a.split("/"))
|
||||||
.split("/")
|
.filter(Boolean);
|
||||||
.forEach((parte) => {
|
|
||||||
if (parte) {
|
|
||||||
this._partesCaminho.push(parte);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
/** Retorna o caminho completo da rota
|
/** Retorna o caminho completo da rota
|
||||||
** console.log(mCaminho.caminho)
|
** console.log(mCaminho.caminho)
|
||||||
** "/caminho"
|
** "/caminho"
|
||||||
*/
|
*/
|
||||||
get caminho() {
|
get caminho() {
|
||||||
let ret = `/${this._partesCaminho.join("/")}`;
|
const ret = `/${this._partesCaminho.join("/")}`;
|
||||||
ret = ret.replace(/\/+/g, "/");
|
|
||||||
if (ret.length > 1 && ret.endsWith("/")) {
|
|
||||||
ret = ret.slice(0, -1);
|
|
||||||
}
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
/** Define o caminho completo da rota
|
/** Define o caminho completo da rota
|
||||||
|
|
|
||||||
2
dist/tipagemRotas.js.map
vendored
2
dist/tipagemRotas.js.map
vendored
|
|
@ -1 +1 @@
|
||||||
{"version":3,"file":"tipagemRotas.js","sourceRoot":"","sources":["../src/tipagemRotas.ts"],"names":[],"mappings":"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"}
|
{"version":3,"file":"tipagemRotas.js","sourceRoot":"","sources":["../src/tipagemRotas.ts"],"names":[],"mappings":"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"}
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
{
|
{
|
||||||
"name": "p-comuns",
|
"name": "p-comuns",
|
||||||
"version": "0.105.0",
|
"version": "0.106.0",
|
||||||
"description": "",
|
"description": "",
|
||||||
"main": "dist/index.js",
|
"main": "dist/index.js",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
|
|
|
||||||
|
|
@ -17,22 +17,17 @@ export class TipagemRotas<T extends { [q: string]: string | undefined }> {
|
||||||
** export const mCaminho = new TipagemRotas<{q:string}>("aplicacao","funcionalidade")
|
** export const mCaminho = new TipagemRotas<{q:string}>("aplicacao","funcionalidade")
|
||||||
*/
|
*/
|
||||||
constructor({
|
constructor({
|
||||||
caminhos,
|
caminho,
|
||||||
acaoIr,
|
acaoIr,
|
||||||
}: {
|
}: {
|
||||||
caminhos: string[] | string
|
caminho: string[] | string
|
||||||
acaoIr?: undefined | ((endereco: string) => undefined)
|
acaoIr?: undefined | ((endereco: string) => undefined)
|
||||||
}) {
|
}) {
|
||||||
this._acaoIr = acaoIr
|
this._acaoIr = acaoIr
|
||||||
;[Array.isArray(caminhos) ? caminhos : [caminhos]].forEach((caminho) => {
|
|
||||||
String(caminho)
|
this._partesCaminho = (Array.isArray(caminho) ? caminho : [caminho])
|
||||||
.split("/")
|
.flatMap((a) => a.split("/"))
|
||||||
.forEach((parte) => {
|
.filter(Boolean)
|
||||||
if (parte) {
|
|
||||||
this._partesCaminho.push(parte)
|
|
||||||
}
|
|
||||||
})
|
|
||||||
})
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Retorna o caminho completo da rota
|
/** Retorna o caminho completo da rota
|
||||||
|
|
@ -40,11 +35,7 @@ export class TipagemRotas<T extends { [q: string]: string | undefined }> {
|
||||||
** "/caminho"
|
** "/caminho"
|
||||||
*/
|
*/
|
||||||
get caminho() {
|
get caminho() {
|
||||||
let ret = `/${this._partesCaminho.join("/")}`
|
const ret = `/${this._partesCaminho.join("/")}`
|
||||||
ret = ret.replace(/\/+/g, "/")
|
|
||||||
if (ret.length > 1 && ret.endsWith("/")) {
|
|
||||||
ret = ret.slice(0, -1)
|
|
||||||
}
|
|
||||||
return ret
|
return ret
|
||||||
}
|
}
|
||||||
/** Define o caminho completo da rota
|
/** Define o caminho completo da rota
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue