troca por Fastify

This commit is contained in:
Luiz H. R. Silva 2024-06-11 09:52:14 -03:00
parent ad6dcda6a5
commit 67aeeea9b4
5 changed files with 685 additions and 798 deletions

View file

@ -2,18 +2,18 @@ import { z } from "zod";
import { PORTA, PREFIXO } from "../PREFIXO"; import { PORTA, PREFIXO } from "../PREFIXO";
const validar = z const validar = z
.object({ .object({
PORTA: z.string(), PORTA: z.string(),
PREFIXO: z.string().regex(/^\/\w+$/), PREFIXO: z.string().regex(/^\/\w+$/),
}) })
.safeParse({ PORTA, PREFIXO }); .safeParse({ PORTA, PREFIXO });
if ("error" in validar) { if ("error" in validar) {
throw new Error( throw new Error(
validar.error.errors validar.error?.errors
.map((erro) => `${erro.path}: ${erro.message}`) .map((erro) => `${erro.path}: ${erro.message}`)
.join("\n"), .join("\n"),
); );
} }
export const ambiente = validar.data; export const ambiente = validar.data;

View file

@ -1,15 +1,14 @@
import { estaticos } from "../src";
import path from "node:path"; import path from "node:path";
import express from "express";
import fs from "node:fs";
import { gerar } from "./listar_arquivos";
import { ambiente } from "./ambiente";
import { renderToStaticMarkup } from "react-dom/server"; import { renderToStaticMarkup } from "react-dom/server";
import bodyParser from 'body-parser' import { estaticos } from "../src";
import { ambiente } from "./ambiente";
import { gerar } from "./listar_arquivos";
// biome-ignore lint/style/useImportType: <explanation> // biome-ignore lint/style/useImportType: <explanation>
import React, {} from "react"; import React, {} from "react";
import cors from "cors";
import fastifyStatc from "@fastify/static";
import Fastify, {} from "fastify";
const { PORTA, PREFIXO } = ambiente; const { PORTA, PREFIXO } = ambiente;
@ -55,58 +54,68 @@ const criarHtml = (entrada: {
}; };
gerar.then(() => { gerar.then(() => {
const app = express(); const fastify = Fastify({
app.use(express.json()); logger: true,
app.use(express.urlencoded());
app.use(cors());
app.use(bodyParser.urlencoded({ extended: false }))
app.get([PREFIXO, `${PREFIXO}/`], (req, res) => { ignoreTrailingSlash: true,
const html = (
<html lang="pt-BR">
<head>
<title>Arquivos Estáticos</title>
</head>{" "}
<body>
<h4>Arquivos Estáticos</h4>
<table width={"100%"}>
<tr>
<td width={"50%"}> {criarHtml(estaticos("relativo"))} </td>
<td width={"50%"}>
<iframe
title="Iframe"
name={_iframe}
height={600}
width={"100%"}
/>
</td>
</tr>
</table>
</body>
</html>
);
const renderHtml = renderToStaticMarkup(html, {});
res.setHeader("content-type", "text/html");
res.send(renderHtml);
});
app.get(`${PREFIXO}/*`, (req, res) => {
const caminho_arquivo = path.join(process.cwd(), decodeURI(req.path));
if (fs.existsSync(caminho_arquivo)) {
console.log(`200: ${req.url}`);
return res.sendFile(caminho_arquivo);
}
console.log(`404: ${req.url}`);
return res.status(404).send(`404: ${req.url}`);
}); });
app.all("*", (req, res) => { fastify.route({
res.redirect(PREFIXO); method: "GET",
url: "/",
handler: (req, res) => {
res.redirect(`${PREFIXO}/`);
},
}); });
app.listen(PORTA, () => { fastify.route({
console.log(`Servidor ${PREFIXO} Rodando em http://localhost:${PORTA}`); method: "GET",
url: `${PREFIXO}/`,
handler: async (request, reply) => {
const html = (
<html lang="pt-BR">
<head>
<title>Arquivos Estáticos</title>
</head>{" "}
<body>
<h4>Arquivos Estáticos</h4>
<table width={"100%"}>
<tr>
<td width={"50%"}> {criarHtml(estaticos("relativo"))} </td>
<td width={"50%"}>
<iframe
title="Iframe"
name={_iframe}
height={600}
width={"100%"}
/>
</td>
</tr>
</table>
</body>
</html>
);
const renderHtml = renderToStaticMarkup(html, {});
// htlm utf-8
reply.header("content-type", "text/html; charset=utf-8");
reply.send(renderHtml);
},
});
fastify.register(fastifyStatc, {
root: path.join(process.cwd(), "estaticos"),
prefix: PREFIXO,
});
// 404
fastify.setNotFoundHandler((request, reply) => {
reply.code(404).send(`Não encontrado: ${request.url}`);
});
fastify.listen({ port: Number(PORTA) }, (err, address) => {
if (err) throw err;
console.log(`Servidor ${PREFIXO} Rodando em ${address}`);
}); });
}); });

View file

@ -1,21 +1,15 @@
{ {
"name": "p-estaticos", "name": "p-estaticos",
"version": "0.36.0", "version": "0.37.0",
"description": "", "description": "",
"main": "dist/index.js", "main": "dist/index.js",
"scripts": { "scripts": {
"#1": "Executa o servidor de desenvolvimento e sem produção",
"dev": "tsx ferramentas/rodar_servidor.tsx", "dev": "tsx ferramentas/rodar_servidor.tsx",
"#2": "Gerar o pacote para ser imortado em outros projetos", "build": "npm --no-git-tag-version version minor && pnpm run gerar && pnpm run biome && tsc",
"build": "npm --no-git-tag-version version minor && pnpm run gerar && npx @biomejs/biome check --write ./src && tsc",
"#3": "Faz uma checagem de versão do node",
"nodev": "check-node-version --node '>= 20'", "nodev": "check-node-version --node '>= 20'",
"#4": "Mata o processo que está rodando na porta 5020",
"kill": "npx kill-port -p 5020", "kill": "npx kill-port -p 5020",
"#5": "Gerar a listagem de arquivos estaticos",
"gerar": "dotenv -e .env tsx ferramentas/listar_arquivos.ts gerar", "gerar": "dotenv -e .env tsx ferramentas/listar_arquivos.ts gerar",
"#6": "Faz a formatação do código", "biome": "npx @biomejs/biome check --write ./src && npx @biomejs/biome check --write ./ferramentas",
"biome": "npx @biomejs/biome check --write ./src",
"postinstall": "pnpm up p-*" "postinstall": "pnpm up p-*"
}, },
"author": { "author": {
@ -25,19 +19,14 @@
}, },
"license": "ISC", "license": "ISC",
"dependencies": { "dependencies": {
"@fastify/static": "^7.0.4",
"body-parser": "latest", "fastify": "^4.27.0",
"cors": "^2.8.5",
"express": "latest",
"react": "^18.3.1", "react": "^18.3.1",
"react-dom": "^18.3.1", "react-dom": "^18.3.1",
"zod": "3.23.8" "zod": "3.23.8"
}, },
"devDependencies": { "devDependencies": {
"@biomejs/biome": "latest", "@biomejs/biome": "latest",
"@types/cors": "^2.8.17",
"@types/express": "latest",
"@types/body-parser": "latest",
"@types/node": "^20.11.30", "@types/node": "^20.11.30",
"@types/react": "^18.3.1", "@types/react": "^18.3.1",
"@types/react-dom": "^18.3.0", "@types/react-dom": "^18.3.0",

917
pnpm-lock.yaml generated

File diff suppressed because it is too large Load diff

View file

@ -1,206 +1,202 @@
const Prefixos = {
relativo: "/estaticos",
"link-local": "http://localhost:5020/estaticos",
const Prefixos = { "link-servidor": "https://carro-de-boi-idz-one.b-cdn.net/estaticos",
"relativo": "/estaticos", node_modules: "node_modules/p-estaticos/estaticos",
"link-local": "http://localhost:5020/estaticos",
"link-servidor": "https://carro-de-boi-idz-one.b-cdn.net/estaticos",
"node_modules": "node_modules/p-estaticos/estaticos"
};
/**
*
* @param caminho
* @returns String
*/
export const estaticos = (caminho: keyof typeof Prefixos) => {
const prefixo = Prefixos[caminho];
return {
"logos": {
"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.": `${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.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.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`,
"logo_verde_plantula_branca.png": `${prefixo}/logos/e-licencie/logo_verde_plantula_branca.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-sistemas": {
"logo.png": `${prefixo}/logos/betha-sistemas/logo.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": {
"quero-quero.gif": `${prefixo}/imagens/quero-quero.gif`,
"favicon.ico": `${prefixo}/imagens/favicon.ico`,
"exemplo_brasao.jpeg": `${prefixo}/imagens/exemplo_brasao.jpeg`
},
"html": {
"404.html": `${prefixo}/html/404.html`
},
"fundos": {
"fundo-16.jpg": `${prefixo}/fundos/fundo-16.jpg`,
"fundo-15.jpg": `${prefixo}/fundos/fundo-15.jpg`,
"fundo-14.jpg": `${prefixo}/fundos/fundo-14.jpg`,
"fundo-13.jpg": `${prefixo}/fundos/fundo-13.jpg`,
"fundo-12.jpg": `${prefixo}/fundos/fundo-12.jpg`,
"fundo-11.jpg": `${prefixo}/fundos/fundo-11.jpg`,
"fundo-10.jpg": `${prefixo}/fundos/fundo-10.jpg`,
"fundo-09.jpg": `${prefixo}/fundos/fundo-09.jpg`,
"fundo-08.jpg": `${prefixo}/fundos/fundo-08.jpg`,
"fundo-07.jpg": `${prefixo}/fundos/fundo-07.jpg`,
"fundo-06.jpg": `${prefixo}/fundos/fundo-06.jpg`,
"fundo-05.jpg": `${prefixo}/fundos/fundo-05.jpg`,
"fundo-04.jpg": `${prefixo}/fundos/fundo-04.jpg`,
"fundo-03.jpg": `${prefixo}/fundos/fundo-03.jpg`,
"fundo-02.jpg": `${prefixo}/fundos/fundo-02.jpg`,
"fundo-01.jpg": `${prefixo}/fundos/fundo-01.jpg`
},
"fonts-master": {
"sobre.txt": `${prefixo}/fonts-master/sobre.txt`,
"roboto": {
"Roboto-ThinItalic.ttf": `${prefixo}/fonts-master/roboto/Roboto-ThinItalic.ttf`,
"Roboto-Thin.ttf": `${prefixo}/fonts-master/roboto/Roboto-Thin.ttf`,
"Roboto-Regular.ttf": `${prefixo}/fonts-master/roboto/Roboto-Regular.ttf`,
"Roboto-MediumItalic.ttf": `${prefixo}/fonts-master/roboto/Roboto-MediumItalic.ttf`,
"Roboto-Medium.ttf": `${prefixo}/fonts-master/roboto/Roboto-Medium.ttf`,
"Roboto-LightItalic.ttf": `${prefixo}/fonts-master/roboto/Roboto-LightItalic.ttf`,
"Roboto-Light.ttf": `${prefixo}/fonts-master/roboto/Roboto-Light.ttf`,
"Roboto-Italic.ttf": `${prefixo}/fonts-master/roboto/Roboto-Italic.ttf`,
"Roboto-CondensedRegular.ttf": `${prefixo}/fonts-master/roboto/Roboto-CondensedRegular.ttf`,
"Roboto-CondensedLightItalic.ttf": `${prefixo}/fonts-master/roboto/Roboto-CondensedLightItalic.ttf`,
"Roboto-CondensedLight.ttf": `${prefixo}/fonts-master/roboto/Roboto-CondensedLight.ttf`,
"Roboto-CondensedItalic.ttf": `${prefixo}/fonts-master/roboto/Roboto-CondensedItalic.ttf`,
"Roboto-CondensedBoldItalic.ttf": `${prefixo}/fonts-master/roboto/Roboto-CondensedBoldItalic.ttf`,
"Roboto-CondensedBold.ttf": `${prefixo}/fonts-master/roboto/Roboto-CondensedBold.ttf`,
"Roboto-BoldItalic.ttf": `${prefixo}/fonts-master/roboto/Roboto-BoldItalic.ttf`,
"Roboto-Bold.ttf": `${prefixo}/fonts-master/roboto/Roboto-Bold.ttf`,
"Roboto-BlackItalic.ttf": `${prefixo}/fonts-master/roboto/Roboto-BlackItalic.ttf`,
"Roboto-Black.ttf": `${prefixo}/fonts-master/roboto/Roboto-Black.ttf`,
"LICENSE.txt": `${prefixo}/fonts-master/roboto/LICENSE.txt`,
"COPYRIGHT.txt": `${prefixo}/fonts-master/roboto/COPYRIGHT.txt`
},
"pt-sans": {
"PTSans-Regular.ttf": `${prefixo}/fonts-master/pt-sans/PTSans-Regular.ttf`,
"PTSans-NarrowRegular.ttf": `${prefixo}/fonts-master/pt-sans/PTSans-NarrowRegular.ttf`,
"PTSans-NarrowBold.ttf": `${prefixo}/fonts-master/pt-sans/PTSans-NarrowBold.ttf`,
"PTSans-Italic.ttf": `${prefixo}/fonts-master/pt-sans/PTSans-Italic.ttf`,
"PTSans-CaptionWebBold.ttf": `${prefixo}/fonts-master/pt-sans/PTSans-CaptionWebBold.ttf`,
"PTSans-CaptionRegular.ttf": `${prefixo}/fonts-master/pt-sans/PTSans-CaptionRegular.ttf`,
"PTSans-BoldItalic.ttf": `${prefixo}/fonts-master/pt-sans/PTSans-BoldItalic.ttf`,
"PTSans-Bold.ttf": `${prefixo}/fonts-master/pt-sans/PTSans-Bold.ttf`,
"OFL.txt": `${prefixo}/fonts-master/pt-sans/OFL.txt`
},
"open-sans": {
"OpenSans-SemiboldItalic.ttf": `${prefixo}/fonts-master/open-sans/OpenSans-SemiboldItalic.ttf`,
"OpenSans-Semibold.ttf": `${prefixo}/fonts-master/open-sans/OpenSans-Semibold.ttf`,
"OpenSans-Regular.ttf": `${prefixo}/fonts-master/open-sans/OpenSans-Regular.ttf`,
"OpenSans-LightItalic.ttf": `${prefixo}/fonts-master/open-sans/OpenSans-LightItalic.ttf`,
"OpenSans-Light.ttf": `${prefixo}/fonts-master/open-sans/OpenSans-Light.ttf`,
"OpenSans-Italic.ttf": `${prefixo}/fonts-master/open-sans/OpenSans-Italic.ttf`,
"OpenSans-ExtraBoldItalic.ttf": `${prefixo}/fonts-master/open-sans/OpenSans-ExtraBoldItalic.ttf`,
"OpenSans-ExtraBold.ttf": `${prefixo}/fonts-master/open-sans/OpenSans-ExtraBold.ttf`,
"OpenSans-BoldItalic.ttf": `${prefixo}/fonts-master/open-sans/OpenSans-BoldItalic.ttf`,
"OpenSans-Bold.ttf": `${prefixo}/fonts-master/open-sans/OpenSans-Bold.ttf`,
"LICENSE.txt": `${prefixo}/fonts-master/open-sans/LICENSE.txt`,
"Apache License.txt": `${prefixo}/fonts-master/open-sans/Apache%20License.txt`
},
"noto-sans": {
"fonts.json": `${prefixo}/fonts-master/noto-sans/fonts.json`,
"NotoSansTifinagh-Regular.ttf": `${prefixo}/fonts-master/noto-sans/NotoSansTifinagh-Regular.ttf`,
"NotoSansTibetan-Regular.ttf": `${prefixo}/fonts-master/noto-sans/NotoSansTibetan-Regular.ttf`,
"NotoSansTibetan-Bold.ttf": `${prefixo}/fonts-master/noto-sans/NotoSansTibetan-Bold.ttf`,
"NotoSansThai-Regular.ttf": `${prefixo}/fonts-master/noto-sans/NotoSansThai-Regular.ttf`,
"NotoSansThai-Bold.ttf": `${prefixo}/fonts-master/noto-sans/NotoSansThai-Bold.ttf`,
"NotoSansTamil-Regular.ttf": `${prefixo}/fonts-master/noto-sans/NotoSansTamil-Regular.ttf`,
"NotoSansTamil-Bold.ttf": `${prefixo}/fonts-master/noto-sans/NotoSansTamil-Bold.ttf`,
"NotoSansSinhala-Regular.ttf": `${prefixo}/fonts-master/noto-sans/NotoSansSinhala-Regular.ttf`,
"NotoSansSinhala-Bold.ttf": `${prefixo}/fonts-master/noto-sans/NotoSansSinhala-Bold.ttf`,
"NotoSansOriya-Regular.ttf": `${prefixo}/fonts-master/noto-sans/NotoSansOriya-Regular.ttf`,
"NotoSansOriya-Bold.ttf": `${prefixo}/fonts-master/noto-sans/NotoSansOriya-Bold.ttf`,
"NotoSansMyanmar-Regular.ttf": `${prefixo}/fonts-master/noto-sans/NotoSansMyanmar-Regular.ttf`,
"NotoSansMyanmar-Bold.ttf": `${prefixo}/fonts-master/noto-sans/NotoSansMyanmar-Bold.ttf`,
"NotoSansMongolian-Regular.ttf": `${prefixo}/fonts-master/noto-sans/NotoSansMongolian-Regular.ttf`,
"NotoSansLao-Regular.ttf": `${prefixo}/fonts-master/noto-sans/NotoSansLao-Regular.ttf`,
"NotoSansLao-Bold.ttf": `${prefixo}/fonts-master/noto-sans/NotoSansLao-Bold.ttf`,
"NotoSansKhmer-Regular.ttf": `${prefixo}/fonts-master/noto-sans/NotoSansKhmer-Regular.ttf`,
"NotoSansKhmer-Bold.ttf": `${prefixo}/fonts-master/noto-sans/NotoSansKhmer-Bold.ttf`,
"NotoSansKannada-Regular.ttf": `${prefixo}/fonts-master/noto-sans/NotoSansKannada-Regular.ttf`,
"NotoSansKannada-Bold.ttf": `${prefixo}/fonts-master/noto-sans/NotoSansKannada-Bold.ttf`,
"NotoSansJavanese-Regular.ttf": `${prefixo}/fonts-master/noto-sans/NotoSansJavanese-Regular.ttf`,
"NotoSansHebrew-Regular.ttf": `${prefixo}/fonts-master/noto-sans/NotoSansHebrew-Regular.ttf`,
"NotoSansHebrew-Bold.ttf": `${prefixo}/fonts-master/noto-sans/NotoSansHebrew-Bold.ttf`,
"NotoSansGurmukhi-Regular.ttf": `${prefixo}/fonts-master/noto-sans/NotoSansGurmukhi-Regular.ttf`,
"NotoSansGurmukhi-Bold.ttf": `${prefixo}/fonts-master/noto-sans/NotoSansGurmukhi-Bold.ttf`,
"NotoSansGujarati-Regular.ttf": `${prefixo}/fonts-master/noto-sans/NotoSansGujarati-Regular.ttf`,
"NotoSansGujarati-Bold.ttf": `${prefixo}/fonts-master/noto-sans/NotoSansGujarati-Bold.ttf`,
"NotoSansGeorgian-Regular.ttf": `${prefixo}/fonts-master/noto-sans/NotoSansGeorgian-Regular.ttf`,
"NotoSansGeorgian-Bold.ttf": `${prefixo}/fonts-master/noto-sans/NotoSansGeorgian-Bold.ttf`,
"NotoSansEthiopic-Regular.ttf": `${prefixo}/fonts-master/noto-sans/NotoSansEthiopic-Regular.ttf`,
"NotoSansEthiopic-Bold.ttf": `${prefixo}/fonts-master/noto-sans/NotoSansEthiopic-Bold.ttf`,
"NotoSansDevanagari-Regular.ttf": `${prefixo}/fonts-master/noto-sans/NotoSansDevanagari-Regular.ttf`,
"NotoSansDevanagari-Bold.ttf": `${prefixo}/fonts-master/noto-sans/NotoSansDevanagari-Bold.ttf`,
"NotoSansCJKtc-Regular.otf": `${prefixo}/fonts-master/noto-sans/NotoSansCJKtc-Regular.otf`,
"NotoSansCJKtc-Bold.otf": `${prefixo}/fonts-master/noto-sans/NotoSansCJKtc-Bold.otf`,
"NotoSansBengali-Regular.ttf": `${prefixo}/fonts-master/noto-sans/NotoSansBengali-Regular.ttf`,
"NotoSansBengali-Bold.ttf": `${prefixo}/fonts-master/noto-sans/NotoSansBengali-Bold.ttf`,
"NotoSansBalinese-Regular.ttf": `${prefixo}/fonts-master/noto-sans/NotoSansBalinese-Regular.ttf`,
"NotoSansArmenian-Regular.ttf": `${prefixo}/fonts-master/noto-sans/NotoSansArmenian-Regular.ttf`,
"NotoSansArmenian-Bold.ttf": `${prefixo}/fonts-master/noto-sans/NotoSansArmenian-Bold.ttf`,
"NotoSans-Regular.ttf": `${prefixo}/fonts-master/noto-sans/NotoSans-Regular.ttf`,
"NotoSans-Italic.ttf": `${prefixo}/fonts-master/noto-sans/NotoSans-Italic.ttf`,
"NotoSans-Bold.ttf": `${prefixo}/fonts-master/noto-sans/NotoSans-Bold.ttf`,
"NotoNaskhArabic-Regular.ttf": `${prefixo}/fonts-master/noto-sans/NotoNaskhArabic-Regular.ttf`,
"NotoNaskhArabic-Bold.ttf": `${prefixo}/fonts-master/noto-sans/NotoNaskhArabic-Bold.ttf`,
"LICENSE": `${prefixo}/fonts-master/noto-sans/LICENSE`
},
"metropolis": {
"SIL Open Font License.txt": `${prefixo}/fonts-master/metropolis/SIL%20Open%20Font%20License.txt`,
"Metropolis-ThinItalic.otf": `${prefixo}/fonts-master/metropolis/Metropolis-ThinItalic.otf`,
"Metropolis-Thin.otf": `${prefixo}/fonts-master/metropolis/Metropolis-Thin.otf`,
"Metropolis-SemiBoldItalic.otf": `${prefixo}/fonts-master/metropolis/Metropolis-SemiBoldItalic.otf`,
"Metropolis-SemiBold.otf": `${prefixo}/fonts-master/metropolis/Metropolis-SemiBold.otf`,
"Metropolis-RegularItalic.otf": `${prefixo}/fonts-master/metropolis/Metropolis-RegularItalic.otf`,
"Metropolis-Regular.otf": `${prefixo}/fonts-master/metropolis/Metropolis-Regular.otf`,
"Metropolis-MediumItalic.otf": `${prefixo}/fonts-master/metropolis/Metropolis-MediumItalic.otf`,
"Metropolis-Medium.otf": `${prefixo}/fonts-master/metropolis/Metropolis-Medium.otf`,
"Metropolis-LightItalic.otf": `${prefixo}/fonts-master/metropolis/Metropolis-LightItalic.otf`,
"Metropolis-Light.otf": `${prefixo}/fonts-master/metropolis/Metropolis-Light.otf`,
"Metropolis-ExtraLightItalic.otf": `${prefixo}/fonts-master/metropolis/Metropolis-ExtraLightItalic.otf`,
"Metropolis-ExtraLight.otf": `${prefixo}/fonts-master/metropolis/Metropolis-ExtraLight.otf`,
"Metropolis-ExtraBoldItalic.otf": `${prefixo}/fonts-master/metropolis/Metropolis-ExtraBoldItalic.otf`,
"Metropolis-ExtraBold.otf": `${prefixo}/fonts-master/metropolis/Metropolis-ExtraBold.otf`,
"Metropolis-BoldItalic.otf": `${prefixo}/fonts-master/metropolis/Metropolis-BoldItalic.otf`,
"Metropolis-Bold.otf": `${prefixo}/fonts-master/metropolis/Metropolis-Bold.otf`,
"Metropolis-BlackItalic.otf": `${prefixo}/fonts-master/metropolis/Metropolis-BlackItalic.otf`,
"Metropolis-Black.otf": `${prefixo}/fonts-master/metropolis/Metropolis-Black.otf`
}
},
"dados": {
"tabela_ibama.json": `${prefixo}/dados/tabela_ibama.json`,
"municipios.json": `${prefixo}/dados/municipios.json`
},
"background": {
"Paisagem.jpg": `${prefixo}/background/Paisagem.jpg`
}
}; };
};
/**
*
* @param caminho
* @returns String
*/
export const estaticos = (caminho: keyof typeof Prefixos) => {
const prefixo = Prefixos[caminho];
return {
logos: {
"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.": `${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.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.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`,
"logo_verde_plantula_branca.png": `${prefixo}/logos/e-licencie/logo_verde_plantula_branca.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-sistemas": {
"logo.png": `${prefixo}/logos/betha-sistemas/logo.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: {
"quero-quero.gif": `${prefixo}/imagens/quero-quero.gif`,
"favicon.ico": `${prefixo}/imagens/favicon.ico`,
"exemplo_brasao.jpeg": `${prefixo}/imagens/exemplo_brasao.jpeg`,
},
html: {
"404.html": `${prefixo}/html/404.html`,
},
fundos: {
"fundo-16.jpg": `${prefixo}/fundos/fundo-16.jpg`,
"fundo-15.jpg": `${prefixo}/fundos/fundo-15.jpg`,
"fundo-14.jpg": `${prefixo}/fundos/fundo-14.jpg`,
"fundo-13.jpg": `${prefixo}/fundos/fundo-13.jpg`,
"fundo-12.jpg": `${prefixo}/fundos/fundo-12.jpg`,
"fundo-11.jpg": `${prefixo}/fundos/fundo-11.jpg`,
"fundo-10.jpg": `${prefixo}/fundos/fundo-10.jpg`,
"fundo-09.jpg": `${prefixo}/fundos/fundo-09.jpg`,
"fundo-08.jpg": `${prefixo}/fundos/fundo-08.jpg`,
"fundo-07.jpg": `${prefixo}/fundos/fundo-07.jpg`,
"fundo-06.jpg": `${prefixo}/fundos/fundo-06.jpg`,
"fundo-05.jpg": `${prefixo}/fundos/fundo-05.jpg`,
"fundo-04.jpg": `${prefixo}/fundos/fundo-04.jpg`,
"fundo-03.jpg": `${prefixo}/fundos/fundo-03.jpg`,
"fundo-02.jpg": `${prefixo}/fundos/fundo-02.jpg`,
"fundo-01.jpg": `${prefixo}/fundos/fundo-01.jpg`,
},
"fonts-master": {
"sobre.txt": `${prefixo}/fonts-master/sobre.txt`,
roboto: {
"Roboto-ThinItalic.ttf": `${prefixo}/fonts-master/roboto/Roboto-ThinItalic.ttf`,
"Roboto-Thin.ttf": `${prefixo}/fonts-master/roboto/Roboto-Thin.ttf`,
"Roboto-Regular.ttf": `${prefixo}/fonts-master/roboto/Roboto-Regular.ttf`,
"Roboto-MediumItalic.ttf": `${prefixo}/fonts-master/roboto/Roboto-MediumItalic.ttf`,
"Roboto-Medium.ttf": `${prefixo}/fonts-master/roboto/Roboto-Medium.ttf`,
"Roboto-LightItalic.ttf": `${prefixo}/fonts-master/roboto/Roboto-LightItalic.ttf`,
"Roboto-Light.ttf": `${prefixo}/fonts-master/roboto/Roboto-Light.ttf`,
"Roboto-Italic.ttf": `${prefixo}/fonts-master/roboto/Roboto-Italic.ttf`,
"Roboto-CondensedRegular.ttf": `${prefixo}/fonts-master/roboto/Roboto-CondensedRegular.ttf`,
"Roboto-CondensedLightItalic.ttf": `${prefixo}/fonts-master/roboto/Roboto-CondensedLightItalic.ttf`,
"Roboto-CondensedLight.ttf": `${prefixo}/fonts-master/roboto/Roboto-CondensedLight.ttf`,
"Roboto-CondensedItalic.ttf": `${prefixo}/fonts-master/roboto/Roboto-CondensedItalic.ttf`,
"Roboto-CondensedBoldItalic.ttf": `${prefixo}/fonts-master/roboto/Roboto-CondensedBoldItalic.ttf`,
"Roboto-CondensedBold.ttf": `${prefixo}/fonts-master/roboto/Roboto-CondensedBold.ttf`,
"Roboto-BoldItalic.ttf": `${prefixo}/fonts-master/roboto/Roboto-BoldItalic.ttf`,
"Roboto-Bold.ttf": `${prefixo}/fonts-master/roboto/Roboto-Bold.ttf`,
"Roboto-BlackItalic.ttf": `${prefixo}/fonts-master/roboto/Roboto-BlackItalic.ttf`,
"Roboto-Black.ttf": `${prefixo}/fonts-master/roboto/Roboto-Black.ttf`,
"LICENSE.txt": `${prefixo}/fonts-master/roboto/LICENSE.txt`,
"COPYRIGHT.txt": `${prefixo}/fonts-master/roboto/COPYRIGHT.txt`,
},
"pt-sans": {
"PTSans-Regular.ttf": `${prefixo}/fonts-master/pt-sans/PTSans-Regular.ttf`,
"PTSans-NarrowRegular.ttf": `${prefixo}/fonts-master/pt-sans/PTSans-NarrowRegular.ttf`,
"PTSans-NarrowBold.ttf": `${prefixo}/fonts-master/pt-sans/PTSans-NarrowBold.ttf`,
"PTSans-Italic.ttf": `${prefixo}/fonts-master/pt-sans/PTSans-Italic.ttf`,
"PTSans-CaptionWebBold.ttf": `${prefixo}/fonts-master/pt-sans/PTSans-CaptionWebBold.ttf`,
"PTSans-CaptionRegular.ttf": `${prefixo}/fonts-master/pt-sans/PTSans-CaptionRegular.ttf`,
"PTSans-BoldItalic.ttf": `${prefixo}/fonts-master/pt-sans/PTSans-BoldItalic.ttf`,
"PTSans-Bold.ttf": `${prefixo}/fonts-master/pt-sans/PTSans-Bold.ttf`,
"OFL.txt": `${prefixo}/fonts-master/pt-sans/OFL.txt`,
},
"open-sans": {
"OpenSans-SemiboldItalic.ttf": `${prefixo}/fonts-master/open-sans/OpenSans-SemiboldItalic.ttf`,
"OpenSans-Semibold.ttf": `${prefixo}/fonts-master/open-sans/OpenSans-Semibold.ttf`,
"OpenSans-Regular.ttf": `${prefixo}/fonts-master/open-sans/OpenSans-Regular.ttf`,
"OpenSans-LightItalic.ttf": `${prefixo}/fonts-master/open-sans/OpenSans-LightItalic.ttf`,
"OpenSans-Light.ttf": `${prefixo}/fonts-master/open-sans/OpenSans-Light.ttf`,
"OpenSans-Italic.ttf": `${prefixo}/fonts-master/open-sans/OpenSans-Italic.ttf`,
"OpenSans-ExtraBoldItalic.ttf": `${prefixo}/fonts-master/open-sans/OpenSans-ExtraBoldItalic.ttf`,
"OpenSans-ExtraBold.ttf": `${prefixo}/fonts-master/open-sans/OpenSans-ExtraBold.ttf`,
"OpenSans-BoldItalic.ttf": `${prefixo}/fonts-master/open-sans/OpenSans-BoldItalic.ttf`,
"OpenSans-Bold.ttf": `${prefixo}/fonts-master/open-sans/OpenSans-Bold.ttf`,
"LICENSE.txt": `${prefixo}/fonts-master/open-sans/LICENSE.txt`,
"Apache License.txt": `${prefixo}/fonts-master/open-sans/Apache%20License.txt`,
},
"noto-sans": {
"fonts.json": `${prefixo}/fonts-master/noto-sans/fonts.json`,
"NotoSansTifinagh-Regular.ttf": `${prefixo}/fonts-master/noto-sans/NotoSansTifinagh-Regular.ttf`,
"NotoSansTibetan-Regular.ttf": `${prefixo}/fonts-master/noto-sans/NotoSansTibetan-Regular.ttf`,
"NotoSansTibetan-Bold.ttf": `${prefixo}/fonts-master/noto-sans/NotoSansTibetan-Bold.ttf`,
"NotoSansThai-Regular.ttf": `${prefixo}/fonts-master/noto-sans/NotoSansThai-Regular.ttf`,
"NotoSansThai-Bold.ttf": `${prefixo}/fonts-master/noto-sans/NotoSansThai-Bold.ttf`,
"NotoSansTamil-Regular.ttf": `${prefixo}/fonts-master/noto-sans/NotoSansTamil-Regular.ttf`,
"NotoSansTamil-Bold.ttf": `${prefixo}/fonts-master/noto-sans/NotoSansTamil-Bold.ttf`,
"NotoSansSinhala-Regular.ttf": `${prefixo}/fonts-master/noto-sans/NotoSansSinhala-Regular.ttf`,
"NotoSansSinhala-Bold.ttf": `${prefixo}/fonts-master/noto-sans/NotoSansSinhala-Bold.ttf`,
"NotoSansOriya-Regular.ttf": `${prefixo}/fonts-master/noto-sans/NotoSansOriya-Regular.ttf`,
"NotoSansOriya-Bold.ttf": `${prefixo}/fonts-master/noto-sans/NotoSansOriya-Bold.ttf`,
"NotoSansMyanmar-Regular.ttf": `${prefixo}/fonts-master/noto-sans/NotoSansMyanmar-Regular.ttf`,
"NotoSansMyanmar-Bold.ttf": `${prefixo}/fonts-master/noto-sans/NotoSansMyanmar-Bold.ttf`,
"NotoSansMongolian-Regular.ttf": `${prefixo}/fonts-master/noto-sans/NotoSansMongolian-Regular.ttf`,
"NotoSansLao-Regular.ttf": `${prefixo}/fonts-master/noto-sans/NotoSansLao-Regular.ttf`,
"NotoSansLao-Bold.ttf": `${prefixo}/fonts-master/noto-sans/NotoSansLao-Bold.ttf`,
"NotoSansKhmer-Regular.ttf": `${prefixo}/fonts-master/noto-sans/NotoSansKhmer-Regular.ttf`,
"NotoSansKhmer-Bold.ttf": `${prefixo}/fonts-master/noto-sans/NotoSansKhmer-Bold.ttf`,
"NotoSansKannada-Regular.ttf": `${prefixo}/fonts-master/noto-sans/NotoSansKannada-Regular.ttf`,
"NotoSansKannada-Bold.ttf": `${prefixo}/fonts-master/noto-sans/NotoSansKannada-Bold.ttf`,
"NotoSansJavanese-Regular.ttf": `${prefixo}/fonts-master/noto-sans/NotoSansJavanese-Regular.ttf`,
"NotoSansHebrew-Regular.ttf": `${prefixo}/fonts-master/noto-sans/NotoSansHebrew-Regular.ttf`,
"NotoSansHebrew-Bold.ttf": `${prefixo}/fonts-master/noto-sans/NotoSansHebrew-Bold.ttf`,
"NotoSansGurmukhi-Regular.ttf": `${prefixo}/fonts-master/noto-sans/NotoSansGurmukhi-Regular.ttf`,
"NotoSansGurmukhi-Bold.ttf": `${prefixo}/fonts-master/noto-sans/NotoSansGurmukhi-Bold.ttf`,
"NotoSansGujarati-Regular.ttf": `${prefixo}/fonts-master/noto-sans/NotoSansGujarati-Regular.ttf`,
"NotoSansGujarati-Bold.ttf": `${prefixo}/fonts-master/noto-sans/NotoSansGujarati-Bold.ttf`,
"NotoSansGeorgian-Regular.ttf": `${prefixo}/fonts-master/noto-sans/NotoSansGeorgian-Regular.ttf`,
"NotoSansGeorgian-Bold.ttf": `${prefixo}/fonts-master/noto-sans/NotoSansGeorgian-Bold.ttf`,
"NotoSansEthiopic-Regular.ttf": `${prefixo}/fonts-master/noto-sans/NotoSansEthiopic-Regular.ttf`,
"NotoSansEthiopic-Bold.ttf": `${prefixo}/fonts-master/noto-sans/NotoSansEthiopic-Bold.ttf`,
"NotoSansDevanagari-Regular.ttf": `${prefixo}/fonts-master/noto-sans/NotoSansDevanagari-Regular.ttf`,
"NotoSansDevanagari-Bold.ttf": `${prefixo}/fonts-master/noto-sans/NotoSansDevanagari-Bold.ttf`,
"NotoSansCJKtc-Regular.otf": `${prefixo}/fonts-master/noto-sans/NotoSansCJKtc-Regular.otf`,
"NotoSansCJKtc-Bold.otf": `${prefixo}/fonts-master/noto-sans/NotoSansCJKtc-Bold.otf`,
"NotoSansBengali-Regular.ttf": `${prefixo}/fonts-master/noto-sans/NotoSansBengali-Regular.ttf`,
"NotoSansBengali-Bold.ttf": `${prefixo}/fonts-master/noto-sans/NotoSansBengali-Bold.ttf`,
"NotoSansBalinese-Regular.ttf": `${prefixo}/fonts-master/noto-sans/NotoSansBalinese-Regular.ttf`,
"NotoSansArmenian-Regular.ttf": `${prefixo}/fonts-master/noto-sans/NotoSansArmenian-Regular.ttf`,
"NotoSansArmenian-Bold.ttf": `${prefixo}/fonts-master/noto-sans/NotoSansArmenian-Bold.ttf`,
"NotoSans-Regular.ttf": `${prefixo}/fonts-master/noto-sans/NotoSans-Regular.ttf`,
"NotoSans-Italic.ttf": `${prefixo}/fonts-master/noto-sans/NotoSans-Italic.ttf`,
"NotoSans-Bold.ttf": `${prefixo}/fonts-master/noto-sans/NotoSans-Bold.ttf`,
"NotoNaskhArabic-Regular.ttf": `${prefixo}/fonts-master/noto-sans/NotoNaskhArabic-Regular.ttf`,
"NotoNaskhArabic-Bold.ttf": `${prefixo}/fonts-master/noto-sans/NotoNaskhArabic-Bold.ttf`,
LICENSE: `${prefixo}/fonts-master/noto-sans/LICENSE`,
},
metropolis: {
"SIL Open Font License.txt": `${prefixo}/fonts-master/metropolis/SIL%20Open%20Font%20License.txt`,
"Metropolis-ThinItalic.otf": `${prefixo}/fonts-master/metropolis/Metropolis-ThinItalic.otf`,
"Metropolis-Thin.otf": `${prefixo}/fonts-master/metropolis/Metropolis-Thin.otf`,
"Metropolis-SemiBoldItalic.otf": `${prefixo}/fonts-master/metropolis/Metropolis-SemiBoldItalic.otf`,
"Metropolis-SemiBold.otf": `${prefixo}/fonts-master/metropolis/Metropolis-SemiBold.otf`,
"Metropolis-RegularItalic.otf": `${prefixo}/fonts-master/metropolis/Metropolis-RegularItalic.otf`,
"Metropolis-Regular.otf": `${prefixo}/fonts-master/metropolis/Metropolis-Regular.otf`,
"Metropolis-MediumItalic.otf": `${prefixo}/fonts-master/metropolis/Metropolis-MediumItalic.otf`,
"Metropolis-Medium.otf": `${prefixo}/fonts-master/metropolis/Metropolis-Medium.otf`,
"Metropolis-LightItalic.otf": `${prefixo}/fonts-master/metropolis/Metropolis-LightItalic.otf`,
"Metropolis-Light.otf": `${prefixo}/fonts-master/metropolis/Metropolis-Light.otf`,
"Metropolis-ExtraLightItalic.otf": `${prefixo}/fonts-master/metropolis/Metropolis-ExtraLightItalic.otf`,
"Metropolis-ExtraLight.otf": `${prefixo}/fonts-master/metropolis/Metropolis-ExtraLight.otf`,
"Metropolis-ExtraBoldItalic.otf": `${prefixo}/fonts-master/metropolis/Metropolis-ExtraBoldItalic.otf`,
"Metropolis-ExtraBold.otf": `${prefixo}/fonts-master/metropolis/Metropolis-ExtraBold.otf`,
"Metropolis-BoldItalic.otf": `${prefixo}/fonts-master/metropolis/Metropolis-BoldItalic.otf`,
"Metropolis-Bold.otf": `${prefixo}/fonts-master/metropolis/Metropolis-Bold.otf`,
"Metropolis-BlackItalic.otf": `${prefixo}/fonts-master/metropolis/Metropolis-BlackItalic.otf`,
"Metropolis-Black.otf": `${prefixo}/fonts-master/metropolis/Metropolis-Black.otf`,
},
},
dados: {
"tabela_ibama.json": `${prefixo}/dados/tabela_ibama.json`,
"municipios.json": `${prefixo}/dados/municipios.json`,
},
background: {
"Paisagem.jpg": `${prefixo}/background/Paisagem.jpg`,
},
};
};