ella / app.js
cruxx's picture
Change elysia provider to swagger
4c53211 verified
import { Elysia } from 'elysia'
import { autoload } from 'elysia-autoload'
import { staticPlugin } from '@elysiajs/static'
import { swagger } from '@elysiajs/swagger'
import { tmpdir } from 'node:os'
import logixlysia from 'logixlysia'
const optsElysia = {
serve: { maxRequestBodySize: Number.MAX_SAFE_INTEGER }
}
const optsLoad = { prefix: '/v1' }
const optsLog = {
ip: true,
startupMessageFormat: 'simple',
timestamp: { translateTime: '[HH:MM:ss]' }
}
const optsStatic = {
alwaysStatic: true,
assets: tmpdir(),
prefix: '/file'
}
const optsSwagger = {
documentation: {
info: {
title: 'Ella API Documentation',
version: '1.0.0'
}
},
exclude: [new RegExp(optsStatic.prefix)],
path: '/docs',
provider: 'swagger-ui'
}
export const app = new Elysia(optsElysia)
.use(logixlysia({ config: optsLog }))
.use(await autoload(optsLoad))
.use(staticPlugin(optsStatic))
.use(swagger(optsSwagger))
.get('/favicon.ico', () => Bun.file('favicon.ico'))
.get('/', ({ redirect }) => redirect(optsSwagger.path))
await app.modules
app.listen(Bun.env.PORT, () => (
console.log(app.routes.map((x) => x.path))
))