import Fastify from 'fastify' import cors from '@fastify/cors' import process from 'node:process' import { getRessources, transformRessources } from '../src/ressources' import { getContent } from '../src/tree' const fastify = Fastify({ logger: true, }) // eslint-disable-next-line @typescript-eslint/no-unused-vars fastify.register(cors, (_instance) => { return (req, callback) => { const corsOptions = { origin: true, } if (/^localhost$/m.test(req.headers.origin)) { corsOptions.origin = false } callback(null, corsOptions) } }) fastify.get('/api/ressources', async (_request, reply) => { const rawRessources = getRessources() const ressources = transformRessources(rawRessources) reply.send({ ressources }) }) fastify.get('/api/file/*', async (request, reply) => { // @ts-ignore const { '*': name } = request.params const content = await getContent(name) reply.send({ content }) }) fastify.listen({ port: 2000 }, function (err, address) { if (err) { fastify.log.error(err) process.exit(1) } console.log(`Server is now listening on ${address}`) })