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}`)
})