Adicionado função mapearPasta

This commit is contained in:
Luiz Silva 2024-05-22 16:22:18 -03:00
parent aa36f4dfc8
commit 2dd74d88e0
10 changed files with 272 additions and 198 deletions

71
dist/index.d.ts vendored
View file

@ -1,4 +1,4 @@
export declare const Prefixos: { declare const Prefixos: {
relativo: string; relativo: string;
"link-local": string; "link-local": string;
"link-servidor": string; "link-servidor": string;
@ -7,50 +7,39 @@ export declare const Prefixos: {
/** /**
* *
* @param caminho * @param caminho
** "relativo" - Caminho relativo Ex: "/estaticos/favicon.ico"
** "link-local" - Caminho link local Ex: "http://localhost:5020/estaticos/favicon.ico"
** "link-servidor" - Caminho link servidor Ex: "https://carro-de-boi.idz.one/estaticos/favicon.ico"
** "relativo-disco" - Caminho relativo ao disco Ex: "/~estaticos/estaticos/favicon.ico"
* @returns String * @returns String
*/ */
export declare const estaticos: (caminho: keyof typeof Prefixos) => { export declare const estaticos: (caminho: keyof typeof Prefixos) => {
logos: { "e-licencie-gov": {
"e-licencie-gov": { "Logo-e-licencie-gov-vertical.svg": string;
"Logo-e-licencie-gov-vertical.svg": string; "Logo-e-licencie-gov-vertical.": string;
"Logo-e-licencie-gov-vertical.": string; "Logo-e-licencie-gov-horizontal.svg": string;
"Logo-e-licencie-gov-horizontal.svg": string; "Logo-e-licencie-gov-horizontal.png": string;
"Logo-e-licencie-gov-horizontal.png": string; "Logo-e-licencie-gov-horizontal-branco.svg": string;
"Logo-e-licencie-gov-horizontal-branco.svg": string; "Logo-e-licencie-gov-horizontal-branco.png": string;
"Logo-e-licencie-gov-horizontal-branco.png": string;
};
"e-licencie": {
"verde-verde_.png": string;
"verde-verde.png": string;
"escala-branco_.png": string;
"escala-branco.png": string;
"branco-branco.png": string;
};
"betha-meio-ambiente": {
"Logo-betha-meio-ambiente-vertical.svg": string;
"Logo-betha-meio-ambiente-vertical.png": string;
"Logo-betha-meio-ambiente-horizontal.svg": string;
"Logo-betha-meio-ambiente-horizontal.png": string;
"Logo-betha-meio-ambiente-horizontal-branco.svg": string;
"Logo-betha-meio-ambiente-horizontal-branco.png": string;
"Logo-betha-meio-ambiente-brasao.svg": string;
"Logo-betha-meio-ambiente-brasao.png": string;
};
}; };
imagens: { "e-licencie": {
"quero-quero.gif": string; "verde-verde_.png": string;
"favicon.ico": string; "verde-verde.png": string;
"exemplo_brasao.jpeg": string; "escala-branco_.png": string;
"escala-branco.png": string;
"branco-branco.png": string;
}; };
html: { "betha-meio-ambiente": {
"404.html": string; "Logo-betha-meio-ambiente-vertical.svg": string;
}; "Logo-betha-meio-ambiente-vertical.png": string;
dados: { "Logo-betha-meio-ambiente-horizontal.svg": string;
"tabela_ibama.json": string; "Logo-betha-meio-ambiente-horizontal.png": string;
"municipios.json": string; "Logo-betha-meio-ambiente-horizontal-branco.svg": string;
"Logo-betha-meio-ambiente-horizontal-branco.png": string;
"Logo-betha-meio-ambiente-brasao.svg": string;
"Logo-betha-meio-ambiente-brasao.png": string;
}; };
"quero-quero.gif": string;
"favicon.ico": string;
"exemplo_brasao.jpeg": string;
"404.html": string;
"tabela_ibama.json": string;
"municipios.json": string;
}; };
export {};

74
dist/index.js vendored
View file

@ -1,7 +1,7 @@
"use strict"; "use strict";
Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "__esModule", { value: true });
exports.estaticos = exports.Prefixos = void 0; exports.estaticos = void 0;
exports.Prefixos = { const Prefixos = {
relativo: "/estaticos", relativo: "/estaticos",
"link-local": "http://localhost:5020/estaticos", "link-local": "http://localhost:5020/estaticos",
"link-servidor": "https://carro-de-boi-idz-one.b-cdn.net/estaticos", "link-servidor": "https://carro-de-boi-idz-one.b-cdn.net/estaticos",
@ -10,54 +10,42 @@ exports.Prefixos = {
/** /**
* *
* @param caminho * @param caminho
** "relativo" - Caminho relativo Ex: "/estaticos/favicon.ico"
** "link-local" - Caminho link local Ex: "http://localhost:5020/estaticos/favicon.ico"
** "link-servidor" - Caminho link servidor Ex: "https://carro-de-boi.idz.one/estaticos/favicon.ico"
** "relativo-disco" - Caminho relativo ao disco Ex: "/~estaticos/estaticos/favicon.ico"
* @returns String * @returns String
*/ */
const estaticos = (caminho) => { const estaticos = (caminho) => {
const prefixo = exports.Prefixos[caminho] || exports.Prefixos.relativo; const prefixo = Prefixos[caminho] || Prefixos.relativo;
return { return {
logos: { "e-licencie-gov": {
"e-licencie-gov": { "Logo-e-licencie-gov-vertical.svg": `${prefixo}logos/e-licencie-gov/Logo-e-licencie-gov-vertical.svg`,
"Logo-e-licencie-gov-vertical.svg": `${prefixo}/logos/e-licencie-gov/Logo-e-licencie-gov-vertical.svg`, "Logo-e-licencie-gov-vertical.": `${prefixo}logos/e-licencie-gov/Logo-e-licencie-gov-vertical.`,
"Logo-e-licencie-gov-vertical.": `${prefixo}/logos/e-licencie-gov/Logo-e-licencie-gov-vertical.`, "Logo-e-licencie-gov-horizontal.svg": `${prefixo}logos/e-licencie-gov/Logo-e-licencie-gov-horizontal.svg`,
"Logo-e-licencie-gov-horizontal.svg": `${prefixo}/logos/e-licencie-gov/Logo-e-licencie-gov-horizontal.svg`, "Logo-e-licencie-gov-horizontal.png": `${prefixo}logos/e-licencie-gov/Logo-e-licencie-gov-horizontal.png`,
"Logo-e-licencie-gov-horizontal.png": `${prefixo}/logos/e-licencie-gov/Logo-e-licencie-gov-horizontal.png`, "Logo-e-licencie-gov-horizontal-branco.svg": `${prefixo}logos/e-licencie-gov/Logo-e-licencie-gov-horizontal-branco.svg`,
"Logo-e-licencie-gov-horizontal-branco.svg": `${prefixo}/logos/e-licencie-gov/Logo-e-licencie-gov-horizontal-branco.svg`, "Logo-e-licencie-gov-horizontal-branco.png": `${prefixo}logos/e-licencie-gov/Logo-e-licencie-gov-horizontal-branco.png`,
"Logo-e-licencie-gov-horizontal-branco.png": `${prefixo}/logos/e-licencie-gov/Logo-e-licencie-gov-horizontal-branco.png`,
},
"e-licencie": {
"verde-verde_.png": `${prefixo}/logos/e-licencie/verde-verde_.png`,
"verde-verde.png": `${prefixo}/logos/e-licencie/verde-verde.png`,
"escala-branco_.png": `${prefixo}/logos/e-licencie/escala-branco_.png`,
"escala-branco.png": `${prefixo}/logos/e-licencie/escala-branco.png`,
"branco-branco.png": `${prefixo}/logos/e-licencie/branco-branco.png`,
},
"betha-meio-ambiente": {
"Logo-betha-meio-ambiente-vertical.svg": `${prefixo}/logos/betha-meio-ambiente/Logo-betha-meio-ambiente-vertical.svg`,
"Logo-betha-meio-ambiente-vertical.png": `${prefixo}/logos/betha-meio-ambiente/Logo-betha-meio-ambiente-vertical.png`,
"Logo-betha-meio-ambiente-horizontal.svg": `${prefixo}/logos/betha-meio-ambiente/Logo-betha-meio-ambiente-horizontal.svg`,
"Logo-betha-meio-ambiente-horizontal.png": `${prefixo}/logos/betha-meio-ambiente/Logo-betha-meio-ambiente-horizontal.png`,
"Logo-betha-meio-ambiente-horizontal-branco.svg": `${prefixo}/logos/betha-meio-ambiente/Logo-betha-meio-ambiente-horizontal-branco.svg`,
"Logo-betha-meio-ambiente-horizontal-branco.png": `${prefixo}/logos/betha-meio-ambiente/Logo-betha-meio-ambiente-horizontal-branco.png`,
"Logo-betha-meio-ambiente-brasao.svg": `${prefixo}/logos/betha-meio-ambiente/Logo-betha-meio-ambiente-brasao.svg`,
"Logo-betha-meio-ambiente-brasao.png": `${prefixo}/logos/betha-meio-ambiente/Logo-betha-meio-ambiente-brasao.png`,
},
}, },
imagens: { "e-licencie": {
"quero-quero.gif": `${prefixo}/imagens/quero-quero.gif`, "verde-verde_.png": `${prefixo}logos/e-licencie/verde-verde_.png`,
"favicon.ico": `${prefixo}/imagens/favicon.ico`, "verde-verde.png": `${prefixo}logos/e-licencie/verde-verde.png`,
"exemplo_brasao.jpeg": `${prefixo}/imagens/exemplo_brasao.jpeg`, "escala-branco_.png": `${prefixo}logos/e-licencie/escala-branco_.png`,
"escala-branco.png": `${prefixo}logos/e-licencie/escala-branco.png`,
"branco-branco.png": `${prefixo}logos/e-licencie/branco-branco.png`,
}, },
html: { "betha-meio-ambiente": {
"404.html": `${prefixo}/html/404.html`, "Logo-betha-meio-ambiente-vertical.svg": `${prefixo}logos/betha-meio-ambiente/Logo-betha-meio-ambiente-vertical.svg`,
}, "Logo-betha-meio-ambiente-vertical.png": `${prefixo}logos/betha-meio-ambiente/Logo-betha-meio-ambiente-vertical.png`,
dados: { "Logo-betha-meio-ambiente-horizontal.svg": `${prefixo}logos/betha-meio-ambiente/Logo-betha-meio-ambiente-horizontal.svg`,
"tabela_ibama.json": `${prefixo}/dados/tabela_ibama.json`, "Logo-betha-meio-ambiente-horizontal.png": `${prefixo}logos/betha-meio-ambiente/Logo-betha-meio-ambiente-horizontal.png`,
"municipios.json": `${prefixo}/dados/municipios.json`, "Logo-betha-meio-ambiente-horizontal-branco.svg": `${prefixo}logos/betha-meio-ambiente/Logo-betha-meio-ambiente-horizontal-branco.svg`,
"Logo-betha-meio-ambiente-horizontal-branco.png": `${prefixo}logos/betha-meio-ambiente/Logo-betha-meio-ambiente-horizontal-branco.png`,
"Logo-betha-meio-ambiente-brasao.svg": `${prefixo}logos/betha-meio-ambiente/Logo-betha-meio-ambiente-brasao.svg`,
"Logo-betha-meio-ambiente-brasao.png": `${prefixo}logos/betha-meio-ambiente/Logo-betha-meio-ambiente-brasao.png`,
}, },
"quero-quero.gif": `${prefixo}imagens/quero-quero.gif`,
"favicon.ico": `${prefixo}imagens/favicon.ico`,
"exemplo_brasao.jpeg": `${prefixo}imagens/exemplo_brasao.jpeg`,
"404.html": `${prefixo}html/404.html`,
"tabela_ibama.json": `${prefixo}dados/tabela_ibama.json`,
"municipios.json": `${prefixo}dados/municipios.json`,
}; };
}; };
exports.estaticos = estaticos; exports.estaticos = estaticos;

2
dist/index.js.map vendored
View file

@ -1 +1 @@
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAa,QAAA,QAAQ,GAAG;IACvB,QAAQ,EAAE,YAAY;IACtB,YAAY,EAAE,iCAAiC;IAC/C,eAAe,EAAE,kDAAkD;IACnE,gBAAgB,EAAE,sBAAsB;CACxC,CAAC;AAEF;;;;;;;;GAQG;AACI,MAAM,SAAS,GAAG,CAAC,OAA8B,EAAE,EAAE;IAC3D,MAAM,OAAO,GAAG,gBAAQ,CAAC,OAAO,CAAC,IAAI,gBAAQ,CAAC,QAAQ,CAAC;IAEvD,OAAO;QACN,KAAK,EAAE;YACN,gBAAgB,EAAE;gBACjB,kCAAkC,EAAE,GAAG,OAAO,wDAAwD;gBACtG,+BAA+B,EAAE,GAAG,OAAO,qDAAqD;gBAChG,oCAAoC,EAAE,GAAG,OAAO,0DAA0D;gBAC1G,oCAAoC,EAAE,GAAG,OAAO,0DAA0D;gBAC1G,2CAA2C,EAAE,GAAG,OAAO,iEAAiE;gBACxH,2CAA2C,EAAE,GAAG,OAAO,iEAAiE;aACxH;YACD,YAAY,EAAE;gBACb,kBAAkB,EAAE,GAAG,OAAO,oCAAoC;gBAClE,iBAAiB,EAAE,GAAG,OAAO,mCAAmC;gBAChE,oBAAoB,EAAE,GAAG,OAAO,sCAAsC;gBACtE,mBAAmB,EAAE,GAAG,OAAO,qCAAqC;gBACpE,mBAAmB,EAAE,GAAG,OAAO,qCAAqC;aACpE;YACD,qBAAqB,EAAE;gBACtB,uCAAuC,EAAE,GAAG,OAAO,kEAAkE;gBACrH,uCAAuC,EAAE,GAAG,OAAO,kEAAkE;gBACrH,yCAAyC,EAAE,GAAG,OAAO,oEAAoE;gBACzH,yCAAyC,EAAE,GAAG,OAAO,oEAAoE;gBACzH,gDAAgD,EAAE,GAAG,OAAO,2EAA2E;gBACvI,gDAAgD,EAAE,GAAG,OAAO,2EAA2E;gBACvI,qCAAqC,EAAE,GAAG,OAAO,gEAAgE;gBACjH,qCAAqC,EAAE,GAAG,OAAO,gEAAgE;aACjH;SACD;QACD,OAAO,EAAE;YACR,iBAAiB,EAAE,GAAG,OAAO,0BAA0B;YACvD,aAAa,EAAE,GAAG,OAAO,sBAAsB;YAC/C,qBAAqB,EAAE,GAAG,OAAO,8BAA8B;SAC/D;QACD,IAAI,EAAE;YACL,UAAU,EAAE,GAAG,OAAO,gBAAgB;SACtC;QACD,KAAK,EAAE;YACN,mBAAmB,EAAE,GAAG,OAAO,0BAA0B;YACzD,iBAAiB,EAAE,GAAG,OAAO,wBAAwB;SACrD;KACD,CAAC;AACH,CAAC,CAAC;AA5CW,QAAA,SAAS,aA4CpB"} {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,MAAM,QAAQ,GAAG;IAChB,QAAQ,EAAE,YAAY;IACtB,YAAY,EAAE,iCAAiC;IAC/C,eAAe,EAAE,kDAAkD;IACnE,gBAAgB,EAAE,sBAAsB;CACxC,CAAC;AAEF;;;;GAIG;AACI,MAAM,SAAS,GAAG,CAAC,OAA8B,EAAE,EAAE;IAC3D,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC,IAAI,QAAQ,CAAC,QAAQ,CAAC;IAEvD,OAAO;QACN,gBAAgB,EAAE;YACjB,kCAAkC,EAAE,GAAG,OAAO,uDAAuD;YACrG,+BAA+B,EAAE,GAAG,OAAO,oDAAoD;YAC/F,oCAAoC,EAAE,GAAG,OAAO,yDAAyD;YACzG,oCAAoC,EAAE,GAAG,OAAO,yDAAyD;YACzG,2CAA2C,EAAE,GAAG,OAAO,gEAAgE;YACvH,2CAA2C,EAAE,GAAG,OAAO,gEAAgE;SACvH;QACD,YAAY,EAAE;YACb,kBAAkB,EAAE,GAAG,OAAO,mCAAmC;YACjE,iBAAiB,EAAE,GAAG,OAAO,kCAAkC;YAC/D,oBAAoB,EAAE,GAAG,OAAO,qCAAqC;YACrE,mBAAmB,EAAE,GAAG,OAAO,oCAAoC;YACnE,mBAAmB,EAAE,GAAG,OAAO,oCAAoC;SACnE;QACD,qBAAqB,EAAE;YACtB,uCAAuC,EAAE,GAAG,OAAO,iEAAiE;YACpH,uCAAuC,EAAE,GAAG,OAAO,iEAAiE;YACpH,yCAAyC,EAAE,GAAG,OAAO,mEAAmE;YACxH,yCAAyC,EAAE,GAAG,OAAO,mEAAmE;YACxH,gDAAgD,EAAE,GAAG,OAAO,0EAA0E;YACtI,gDAAgD,EAAE,GAAG,OAAO,0EAA0E;YACtI,qCAAqC,EAAE,GAAG,OAAO,+DAA+D;YAChH,qCAAqC,EAAE,GAAG,OAAO,+DAA+D;SAChH;QACD,iBAAiB,EAAE,GAAG,OAAO,yBAAyB;QACtD,aAAa,EAAE,GAAG,OAAO,qBAAqB;QAC9C,qBAAqB,EAAE,GAAG,OAAO,6BAA6B;QAC9D,UAAU,EAAE,GAAG,OAAO,eAAe;QACrC,mBAAmB,EAAE,GAAG,OAAO,yBAAyB;QACxD,iBAAiB,EAAE,GAAG,OAAO,uBAAuB;KACpD,CAAC;AACH,CAAC,CAAC;AApCW,QAAA,SAAS,aAoCpB"}

8
dist/mapear_pasta.d.ts vendored Normal file
View file

@ -0,0 +1,8 @@
export declare const mapearPasta: ({ prefixos, pasta, arquivoDestino, variavel, }: {
prefixos: {
[k: string]: string;
};
pasta: string;
arquivoDestino: string;
variavel?: string;
}) => void;

68
dist/mapear_pasta.js vendored Normal file
View file

@ -0,0 +1,68 @@
"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.mapearPasta = void 0;
const node_fs_1 = __importDefault(require("node:fs"));
const node_path_1 = __importDefault(require("node:path"));
const glob_1 = require("glob");
const mapearPasta = ({ prefixos, pasta, arquivoDestino, variavel, }) => {
const pasta_estaticos = pasta.endsWith("/") ? pasta : `${pasta}/`;
if (!node_fs_1.default.existsSync(pasta_estaticos))
throw new Error(`Pasta ${pasta_estaticos} não existe`);
const gerar = (async () => {
// listar arquivos da pasta estáticos
const files = (0, glob_1.globSync)(`${pasta_estaticos}**/*`, { nodir: true });
const arquivo_ts = `
const Prefixos = {
${Object.entries(prefixos)
.map(([k, v]) => `"${k}": "${v.replace(/"/g, '\\"')}"`)
.join(",\n")}
};
/**
*
* @param caminho
* @returns String
*/
export const ${variavel || "estaticos"} = (caminho: keyof typeof Prefixos) => {
const prefixo = Prefixos[caminho] || Prefixos.relativo;
return ${(() => {
const arquivos = {};
for (const arquivo of files) {
const partes = arquivo
.slice(pasta_estaticos.length)
.split("/")
.slice(1);
let pasta = arquivos;
for (const [i, parte] of partes.entries()) {
if (i === partes.length - 1) {
pasta[parte] = `~~~\${prefixo}${encodeURI(arquivo.slice(pasta_estaticos.length))}~~~`;
}
else {
pasta[parte] = pasta[parte] || {};
pasta = pasta[parte];
}
}
}
return JSON.stringify(arquivos, null, 2)
.replace(/"~~~/g, "`")
.replace(/~~~"/g, "`");
})()};
};
`;
// criar pasta de arquivo destino
const pastaDestino = node_path_1.default.dirname(arquivoDestino);
if (!node_fs_1.default.existsSync(pastaDestino)) {
node_fs_1.default.mkdirSync(pastaDestino, { recursive: true });
}
// escrever arquivo
node_fs_1.default.writeFileSync(arquivoDestino, arquivo_ts);
})();
};
exports.mapearPasta = mapearPasta;
//# sourceMappingURL=mapear_pasta.js.map

1
dist/mapear_pasta.js.map vendored Normal file
View file

@ -0,0 +1 @@
{"version":3,"file":"mapear_pasta.js","sourceRoot":"","sources":["../src/mapear_pasta.ts"],"names":[],"mappings":";;;;;;AAAA,sDAAyB;AACzB,0DAA6B;AAC7B,+BAAgC;AAEzB,MAAM,WAAW,GAAG,CAAC,EAC3B,QAAQ,EACR,KAAK,EACL,cAAc,EACd,QAAQ,GAMR,EAAE,EAAE;IACJ,MAAM,eAAe,GAAG,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC;IAClE,IAAI,CAAC,iBAAE,CAAC,UAAU,CAAC,eAAe,CAAC;QAClC,MAAM,IAAI,KAAK,CAAC,SAAS,eAAe,aAAa,CAAC,CAAC;IAExD,MAAM,KAAK,GAAG,CAAC,KAAK,IAAI,EAAE;QACzB,qCAAqC;QACrC,MAAM,KAAK,GAAG,IAAA,eAAQ,EAAC,GAAG,eAAe,MAAM,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QAElE,MAAM,UAAU,GAAG;;;;GAIlB,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC;aACxB,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC;aACtD,IAAI,CAAC,KAAK,CAAC;;;;;;;;iBAQG,QAAQ,IAAI,WAAW;;;aAG3B,CAAC,GAAG,EAAE;YAchB,MAAM,QAAQ,GAAG,EAAQ,CAAC;YAE1B,KAAK,MAAM,OAAO,IAAI,KAAK,EAAE,CAAC;gBAC7B,MAAM,MAAM,GAAG,OAAO;qBACpB,KAAK,CAAC,eAAe,CAAC,MAAM,CAAC;qBAC7B,KAAK,CAAC,GAAG,CAAC;qBACV,KAAK,CAAC,CAAC,CAAC,CAAC;gBACX,IAAI,KAAK,GAAG,QAAQ,CAAC;gBACrB,KAAK,MAAM,CAAC,CAAC,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,EAAE,EAAE,CAAC;oBAC3C,IAAI,CAAC,KAAK,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBAC7B,KAAK,CAAC,KAAK,CAAC,GAAG,iBAAiB,SAAS,CACxC,OAAO,CAAC,KAAK,CAAC,eAAe,CAAC,MAAM,CAAC,CACrC,KAAK,CAAC;oBACR,CAAC;yBAAM,CAAC;wBACP,KAAK,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;wBAClC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAO,CAAC;oBAC5B,CAAC;gBACF,CAAC;YACF,CAAC;YAED,OAAO,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;iBACtC,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC;iBACrB,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;QACzB,CAAC,CAAC,EAAE;;KAED,CAAC;QAEJ,iCAAiC;QACjC,MAAM,YAAY,GAAG,mBAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;QAClD,IAAI,CAAC,iBAAE,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;YAClC,iBAAE,CAAC,SAAS,CAAC,YAAY,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACjD,CAAC;QAED,mBAAmB;QAEnB,iBAAE,CAAC,aAAa,CAAC,cAAc,EAAE,UAAU,CAAC,CAAC;IAC9C,CAAC,CAAC,EAAE,CAAC;AACN,CAAC,CAAC;AAvFW,QAAA,WAAW,eAuFtB"}

View file

@ -1,81 +1,21 @@
import { globSync } from "glob";
import path from "node:path"; import path from "node:path";
import fs from "node:fs";
import { cdn_carro_de_boi } from "~comuns"; import { cdn_carro_de_boi } from "~comuns";
import { mapearPasta } from "../src/mapear_pasta";
const pasta_estaticos = path.resolve(process.cwd(), "estaticos"); const pasta_estaticos = path.resolve(process.cwd(), "estaticos");
const pasta_src = path.resolve(process.cwd(), "src"); const pasta_src = path.resolve(process.cwd(), "src");
export const gerar = (async () => { export const gerar = (async () => {
// listar arquivos da pasta estáticos mapearPasta({
const files = globSync(`${pasta_estaticos}/**/*`, { nodir: true }); prefixos: {
relativo: "/estaticos",
const arquivo_ts = ` "link-local": "http://localhost:5020/estaticos",
"link-servidor": `${cdn_carro_de_boi}/estaticos`,
"relativo-disco": "~estaticos/estaticos",
},
export const Prefixos = { arquivoDestino: path.resolve(pasta_src, "index.ts"),
relativo: "/estaticos", pasta: pasta_estaticos,
"link-local": "http://localhost:5020/estaticos", });
"link-servidor": "${cdn_carro_de_boi}/estaticos",
"relativo-disco": "~estaticos/estaticos",
};
/**
*
* @param caminho
** "relativo" - Caminho relativo Ex: "/estaticos/favicon.ico"
** "link-local" - Caminho link local Ex: "http://localhost:5020/estaticos/favicon.ico"
** "link-servidor" - Caminho link servidor Ex: "https://carro-de-boi.idz.one/estaticos/favicon.ico"
** "relativo-disco" - Caminho relativo ao disco Ex: "/~estaticos/estaticos/favicon.ico"
* @returns String
*/
export const estaticos = (caminho: keyof typeof Prefixos) => {
const prefixo = Prefixos[caminho] || Prefixos.relativo;
return ${(() => {
/*
${files
.map((f) => f.slice(pasta_estaticos.length))
.map((f) => `"${f}": \`\${prefixo}${encodeURI(f)}\``)
.join(",\n")}
*/
type tp = {
[key: string]: string | tp;
};
const arquivos = {} as tp;
for (const arquivo of files) {
const partes = arquivo
.slice(pasta_estaticos.length)
.split("/")
.slice(1);
let pasta = arquivos;
for (const [i, parte] of partes.entries()) {
if (i === partes.length - 1) {
pasta[parte] = `~~~\${prefixo}${encodeURI(
arquivo.slice(pasta_estaticos.length),
)}~~~`;
} else {
pasta[parte] = pasta[parte] || {};
pasta = pasta[parte] as tp;
}
}
}
return JSON.stringify(arquivos, null, 2)
.replace(/"~~~/g, "`")
.replace(/~~~"/g, "`");
})()};
};
`;
// escrever arquivo
fs.writeFileSync(path.resolve(pasta_src, "index.ts"), arquivo_ts);
})(); })();
if (process.argv.includes("gerar")) { if (process.argv.includes("gerar")) {

View file

@ -1,6 +1,6 @@
{ {
"name": "~estaticos", "name": "~estaticos",
"version": "0.13.0", "version": "0.15.0",
"description": "", "description": "",
"main": "dist/index.js", "main": "dist/index.js",
"scripts": { "scripts": {

View file

@ -1,4 +1,4 @@
export const Prefixos = { const Prefixos = {
relativo: "/estaticos", relativo: "/estaticos",
"link-local": "http://localhost:5020/estaticos", "link-local": "http://localhost:5020/estaticos",
"link-servidor": "https://carro-de-boi-idz-one.b-cdn.net/estaticos", "link-servidor": "https://carro-de-boi-idz-one.b-cdn.net/estaticos",
@ -8,54 +8,42 @@ export const Prefixos = {
/** /**
* *
* @param caminho * @param caminho
** "relativo" - Caminho relativo Ex: "/estaticos/favicon.ico"
** "link-local" - Caminho link local Ex: "http://localhost:5020/estaticos/favicon.ico"
** "link-servidor" - Caminho link servidor Ex: "https://carro-de-boi.idz.one/estaticos/favicon.ico"
** "relativo-disco" - Caminho relativo ao disco Ex: "/~estaticos/estaticos/favicon.ico"
* @returns String * @returns String
*/ */
export const estaticos = (caminho: keyof typeof Prefixos) => { export const estaticos = (caminho: keyof typeof Prefixos) => {
const prefixo = Prefixos[caminho] || Prefixos.relativo; const prefixo = Prefixos[caminho] || Prefixos.relativo;
return { return {
logos: { "e-licencie-gov": {
"e-licencie-gov": { "Logo-e-licencie-gov-vertical.svg": `${prefixo}logos/e-licencie-gov/Logo-e-licencie-gov-vertical.svg`,
"Logo-e-licencie-gov-vertical.svg": `${prefixo}/logos/e-licencie-gov/Logo-e-licencie-gov-vertical.svg`, "Logo-e-licencie-gov-vertical.": `${prefixo}logos/e-licencie-gov/Logo-e-licencie-gov-vertical.`,
"Logo-e-licencie-gov-vertical.": `${prefixo}/logos/e-licencie-gov/Logo-e-licencie-gov-vertical.`, "Logo-e-licencie-gov-horizontal.svg": `${prefixo}logos/e-licencie-gov/Logo-e-licencie-gov-horizontal.svg`,
"Logo-e-licencie-gov-horizontal.svg": `${prefixo}/logos/e-licencie-gov/Logo-e-licencie-gov-horizontal.svg`, "Logo-e-licencie-gov-horizontal.png": `${prefixo}logos/e-licencie-gov/Logo-e-licencie-gov-horizontal.png`,
"Logo-e-licencie-gov-horizontal.png": `${prefixo}/logos/e-licencie-gov/Logo-e-licencie-gov-horizontal.png`, "Logo-e-licencie-gov-horizontal-branco.svg": `${prefixo}logos/e-licencie-gov/Logo-e-licencie-gov-horizontal-branco.svg`,
"Logo-e-licencie-gov-horizontal-branco.svg": `${prefixo}/logos/e-licencie-gov/Logo-e-licencie-gov-horizontal-branco.svg`, "Logo-e-licencie-gov-horizontal-branco.png": `${prefixo}logos/e-licencie-gov/Logo-e-licencie-gov-horizontal-branco.png`,
"Logo-e-licencie-gov-horizontal-branco.png": `${prefixo}/logos/e-licencie-gov/Logo-e-licencie-gov-horizontal-branco.png`,
},
"e-licencie": {
"verde-verde_.png": `${prefixo}/logos/e-licencie/verde-verde_.png`,
"verde-verde.png": `${prefixo}/logos/e-licencie/verde-verde.png`,
"escala-branco_.png": `${prefixo}/logos/e-licencie/escala-branco_.png`,
"escala-branco.png": `${prefixo}/logos/e-licencie/escala-branco.png`,
"branco-branco.png": `${prefixo}/logos/e-licencie/branco-branco.png`,
},
"betha-meio-ambiente": {
"Logo-betha-meio-ambiente-vertical.svg": `${prefixo}/logos/betha-meio-ambiente/Logo-betha-meio-ambiente-vertical.svg`,
"Logo-betha-meio-ambiente-vertical.png": `${prefixo}/logos/betha-meio-ambiente/Logo-betha-meio-ambiente-vertical.png`,
"Logo-betha-meio-ambiente-horizontal.svg": `${prefixo}/logos/betha-meio-ambiente/Logo-betha-meio-ambiente-horizontal.svg`,
"Logo-betha-meio-ambiente-horizontal.png": `${prefixo}/logos/betha-meio-ambiente/Logo-betha-meio-ambiente-horizontal.png`,
"Logo-betha-meio-ambiente-horizontal-branco.svg": `${prefixo}/logos/betha-meio-ambiente/Logo-betha-meio-ambiente-horizontal-branco.svg`,
"Logo-betha-meio-ambiente-horizontal-branco.png": `${prefixo}/logos/betha-meio-ambiente/Logo-betha-meio-ambiente-horizontal-branco.png`,
"Logo-betha-meio-ambiente-brasao.svg": `${prefixo}/logos/betha-meio-ambiente/Logo-betha-meio-ambiente-brasao.svg`,
"Logo-betha-meio-ambiente-brasao.png": `${prefixo}/logos/betha-meio-ambiente/Logo-betha-meio-ambiente-brasao.png`,
},
}, },
imagens: { "e-licencie": {
"quero-quero.gif": `${prefixo}/imagens/quero-quero.gif`, "verde-verde_.png": `${prefixo}logos/e-licencie/verde-verde_.png`,
"favicon.ico": `${prefixo}/imagens/favicon.ico`, "verde-verde.png": `${prefixo}logos/e-licencie/verde-verde.png`,
"exemplo_brasao.jpeg": `${prefixo}/imagens/exemplo_brasao.jpeg`, "escala-branco_.png": `${prefixo}logos/e-licencie/escala-branco_.png`,
"escala-branco.png": `${prefixo}logos/e-licencie/escala-branco.png`,
"branco-branco.png": `${prefixo}logos/e-licencie/branco-branco.png`,
}, },
html: { "betha-meio-ambiente": {
"404.html": `${prefixo}/html/404.html`, "Logo-betha-meio-ambiente-vertical.svg": `${prefixo}logos/betha-meio-ambiente/Logo-betha-meio-ambiente-vertical.svg`,
}, "Logo-betha-meio-ambiente-vertical.png": `${prefixo}logos/betha-meio-ambiente/Logo-betha-meio-ambiente-vertical.png`,
dados: { "Logo-betha-meio-ambiente-horizontal.svg": `${prefixo}logos/betha-meio-ambiente/Logo-betha-meio-ambiente-horizontal.svg`,
"tabela_ibama.json": `${prefixo}/dados/tabela_ibama.json`, "Logo-betha-meio-ambiente-horizontal.png": `${prefixo}logos/betha-meio-ambiente/Logo-betha-meio-ambiente-horizontal.png`,
"municipios.json": `${prefixo}/dados/municipios.json`, "Logo-betha-meio-ambiente-horizontal-branco.svg": `${prefixo}logos/betha-meio-ambiente/Logo-betha-meio-ambiente-horizontal-branco.svg`,
"Logo-betha-meio-ambiente-horizontal-branco.png": `${prefixo}logos/betha-meio-ambiente/Logo-betha-meio-ambiente-horizontal-branco.png`,
"Logo-betha-meio-ambiente-brasao.svg": `${prefixo}logos/betha-meio-ambiente/Logo-betha-meio-ambiente-brasao.svg`,
"Logo-betha-meio-ambiente-brasao.png": `${prefixo}logos/betha-meio-ambiente/Logo-betha-meio-ambiente-brasao.png`,
}, },
"quero-quero.gif": `${prefixo}imagens/quero-quero.gif`,
"favicon.ico": `${prefixo}imagens/favicon.ico`,
"exemplo_brasao.jpeg": `${prefixo}imagens/exemplo_brasao.jpeg`,
"404.html": `${prefixo}html/404.html`,
"tabela_ibama.json": `${prefixo}dados/tabela_ibama.json`,
"municipios.json": `${prefixo}dados/municipios.json`,
}; };
}; };

92
src/mapear_pasta.ts Normal file
View file

@ -0,0 +1,92 @@
import fs from "node:fs";
import path from "node:path";
import { globSync } from "glob";
export const mapearPasta = ({
prefixos,
pasta,
arquivoDestino,
variavel,
}: {
prefixos: { [k: string]: string };
pasta: string;
arquivoDestino: string;
variavel?: string;
}) => {
const pasta_estaticos = pasta.endsWith("/") ? pasta : `${pasta}/`;
if (!fs.existsSync(pasta_estaticos))
throw new Error(`Pasta ${pasta_estaticos} não existe`);
const gerar = (async () => {
// listar arquivos da pasta estáticos
const files = globSync(`${pasta_estaticos}**/*`, { nodir: true });
const arquivo_ts = `
const Prefixos = {
${Object.entries(prefixos)
.map(([k, v]) => `"${k}": "${v.replace(/"/g, '\\"')}"`)
.join(",\n")}
};
/**
*
* @param caminho
* @returns String
*/
export const ${variavel || "estaticos"} = (caminho: keyof typeof Prefixos) => {
const prefixo = Prefixos[caminho] || Prefixos.relativo;
return ${(() => {
/*
${files
.map((f) => f.slice(pasta_estaticos.length))
.map((f) => `"${f}": \`\${prefixo}${encodeURI(f)}\``)
.join(",\n")}
*/
type tp = {
[key: string]: string | tp;
};
const arquivos = {} as tp;
for (const arquivo of files) {
const partes = arquivo
.slice(pasta_estaticos.length)
.split("/")
.slice(1);
let pasta = arquivos;
for (const [i, parte] of partes.entries()) {
if (i === partes.length - 1) {
pasta[parte] = `~~~\${prefixo}${encodeURI(
arquivo.slice(pasta_estaticos.length),
)}~~~`;
} else {
pasta[parte] = pasta[parte] || {};
pasta = pasta[parte] as tp;
}
}
}
return JSON.stringify(arquivos, null, 2)
.replace(/"~~~/g, "`")
.replace(/~~~"/g, "`");
})()};
};
`;
// criar pasta de arquivo destino
const pastaDestino = path.dirname(arquivoDestino);
if (!fs.existsSync(pastaDestino)) {
fs.mkdirSync(pastaDestino, { recursive: true });
}
// escrever arquivo
fs.writeFileSync(arquivoDestino, arquivo_ts);
})();
};