import fs from "node:fs" import path from "node:path" import cors from "@fastify/cors" import fastifyStatc from "@fastify/static" import dayjs from "dayjs" import Fastify from "fastify" import type React from "react" import { renderToStaticMarkup } from "react-dom/server" import { estaticos } from "../src" import { ambiente } from "./ambiente" import { gerar } from "./listar_arquivos" const { PORTA, PREFIXO } = ambiente const _iframe = String(Math.random()) const criarHtml = (entrada: { [key: string]: string | {} }): React.JSX.Element[] => { const retorno = [] as React.JSX.Element[] for (const [k, v] of Object.entries(entrada)) { if (typeof v === "string") { retorno.push(

{v}

, ) } else { retorno.push(
{k} {criarHtml(v)}
, ) } } return retorno } gerar.then(() => { const fastify = Fastify({ logger: false, ignoreTrailingSlash: true, }) fastify.addHook("onSend", async (request, reply) => { console.log( [ dayjs().format("YYYY-MM-DD HH:mm:ss"), request.method, request.url, reply.statusCode, request.headers.site || request.headers.referer, ].join(" "), ) }) //cors fastify.register(cors, { origin: "*", }) fastify.route({ method: "GET", url: "/", handler: (_req, res) => { res.redirect(`${PREFIXO}/`) }, }) fastify.route({ method: "GET", url: `${PREFIXO}/`, handler: async (_request, reply) => { const html = ( Arquivos Estáticos {" "}

Arquivos Estáticos

{criarHtml(estaticos("relativo"))}