implementado tsup
This commit is contained in:
parent
7bddbd5c72
commit
8efeb59716
131 changed files with 2216 additions and 1476 deletions
1
dist-front/tipagemRotas.mjs.map
Normal file
1
dist-front/tipagemRotas.mjs.map
Normal file
|
|
@ -0,0 +1 @@
|
|||
{"version":3,"sources":["../src/tipagemRotas.ts"],"sourcesContent":["/** Gerar uma classe que facilita a gestão de rotas com a tipagem das querys\n *\n * Definições:\n *\n * caminho = \"/aplicacao/funcionalidade\"\n *\n * endereco = \"http://localhost:3000/aplicacao/funcionalidade\"\n *\n * parametros = {nome:\"José\"}\n */\n\nexport class TipagemRotas<T extends { [q: string]: string | undefined }> {\n _partesCaminho: string[] = []\n _acaoIr?: (endereco: string) => undefined\n\n /** Ao criar novo obijeto de tipagem de rota é necessário passar o caminho parcial\n ** export const mCaminho = new TipagemRotas<{q:string}>(\"aplicacao\",\"funcionalidade\")\n */\n constructor({\n caminho,\n acaoIr,\n }: {\n caminho: string[] | string\n acaoIr?: undefined | ((endereco: string) => undefined)\n }) {\n this._acaoIr = acaoIr\n\n this._partesCaminho = (Array.isArray(caminho) ? caminho : [caminho])\n .flatMap((a) => a.split(\"/\"))\n .filter(Boolean)\n }\n\n /** Retorna o caminho completo da rota\n ** console.log(mCaminho.caminho)\n ** \"/caminho\"\n */\n get caminho() {\n const ret = `/${this._partesCaminho.join(\"/\")}`\n return ret\n }\n /** Define o caminho completo da rota\n ** mCaminho.caminho = \"/novoCaminho\"\n ** console.log(mCaminho.caminho)\n ** \"/novoCaminho\"\n ** */\n set caminho(caminhoParcial: string) {\n this._partesCaminho = caminhoParcial.split(\"/\").filter((parte) => parte)\n }\n\n /** Retorna o caminho completo da rota com a query\n ** console.log(mCaminho.resolve({q:\"query\"}))\n ** \"http://localhost:3000/caminho?q=query\"\n */\n\n endereco(query: T, usarComoHash?: boolean) {\n const url = new URL(\n typeof window !== \"undefined\" ? window.location.href : \"http://localhost\",\n )\n\n url.pathname = this.caminho\n\n url.search = \"\"\n\n const queryKeys = Object.entries(query)\n\n for (const [key, value] of queryKeys) {\n url.searchParams.set(\n String(key),\n value === undefined || value === null ? \"\" : value,\n )\n }\n\n url.hash = \"\"\n\n if (usarComoHash) {\n url.hash = `#${url.search}`\n url.search = \"\"\n }\n\n return url.href\n }\n\n /** Vai para a url\n ** mCaminho.ir({q:\"query\"})\n ** window.location.href = \"http://localhost:3000/caminho?q=query\"\n */\n ir(query: T) {\n if (this._acaoIr) {\n this._acaoIr(this.endereco(query))\n } else {\n if (typeof window != \"undefined\") {\n window.location.href = this.endereco(query)\n }\n }\n }\n\n /** Retorna os parametros da url\n ** console.log(mCaminho.parametros())\n ** {q:\"query\"}\n */\n\n get parametros() {\n const url = new URL(\n typeof window !== \"undefined\" ? window.location.href : \"http://localhost\",\n )\n const query = url.searchParams\n const queryObj = Object.fromEntries(query.entries())\n\n // pegar hash\n const hash = url.hash\n if (hash) {\n const hashObj = Object.fromEntries(\n new URLSearchParams(hash.slice(1)).entries(),\n )\n return { ...queryObj, ...hashObj } as T\n }\n\n return queryObj as Partial<T>\n }\n}\n"],"mappings":"AAWO,MAAMA,CAA4D,CAOvE,YAAY,CACV,QAAAC,EACA,OAAAC,CACF,EAGG,CAZH,oBAA2B,CAAC,EAa1B,KAAK,QAAUA,EAEf,KAAK,gBAAkB,MAAM,QAAQD,CAAO,EAAIA,EAAU,CAACA,CAAO,GAC/D,QAASE,GAAMA,EAAE,MAAM,GAAG,CAAC,EAC3B,OAAO,OAAO,CACnB,CAMA,IAAI,SAAU,CAEZ,MADY,IAAI,KAAK,eAAe,KAAK,GAAG,CAAC,EAE/C,CAMA,IAAI,QAAQC,EAAwB,CAClC,KAAK,eAAiBA,EAAe,MAAM,GAAG,EAAE,OAAQC,GAAUA,CAAK,CACzE,CAOA,SAASC,EAAUC,EAAwB,CACzC,MAAMC,EAAM,IAAI,IACd,OAAO,OAAW,IAAc,OAAO,SAAS,KAAO,kBACzD,EAEAA,EAAI,SAAW,KAAK,QAEpBA,EAAI,OAAS,GAEb,MAAMC,EAAY,OAAO,QAAQH,CAAK,EAEtC,SAAW,CAACI,EAAKC,CAAK,IAAKF,EACzBD,EAAI,aAAa,IACf,OAAOE,CAAG,EACaC,GAAiB,EAC1C,EAGF,OAAAH,EAAI,KAAO,GAEPD,IACFC,EAAI,KAAO,IAAIA,EAAI,MAAM,GACzBA,EAAI,OAAS,IAGRA,EAAI,IACb,CAMA,GAAGF,EAAU,CACP,KAAK,QACP,KAAK,QAAQ,KAAK,SAASA,CAAK,CAAC,EAE7B,OAAO,OAAU,MACnB,OAAO,SAAS,KAAO,KAAK,SAASA,CAAK,EAGhD,CAOA,IAAI,YAAa,CACf,MAAME,EAAM,IAAI,IACd,OAAO,OAAW,IAAc,OAAO,SAAS,KAAO,kBACzD,EACMF,EAAQE,EAAI,aACZI,EAAW,OAAO,YAAYN,EAAM,QAAQ,CAAC,EAG7CO,EAAOL,EAAI,KACjB,GAAIK,EAAM,CACR,MAAMC,EAAU,OAAO,YACrB,IAAI,gBAAgBD,EAAK,MAAM,CAAC,CAAC,EAAE,QAAQ,CAC7C,EACA,MAAO,CAAE,GAAGD,EAAU,GAAGE,CAAQ,CACnC,CAEA,OAAOF,CACT,CACF","names":["TipagemRotas","caminho","acaoIr","a","caminhoParcial","parte","query","usarComoHash","url","queryKeys","key","value","queryObj","hash","hashObj"]}
|
||||
Loading…
Add table
Add a link
Reference in a new issue