|
|
import { config } from 'dotenv' import fastify from 'fastify' import helmet from 'fastify-helmet' import swagger from 'fastify-swagger' import api from './plugins/api'
config()
const server = fastify({ logger: { level: process.env.LOGGER_LEVEL, prettyPrint: process.env.LOGGER_PRETTY_PRINT === 'true', }, })
server.register(helmet)
server.register(swagger, { routePrefix: '/docs', exposeRoute: true, swagger: { info: { title: 'Flexor API', description: 'API server for Flexor.', version: process.env.NPM_PACKAGE_VERSION, }, tags: [ { name: 'app', description: 'App endpoints.' }, { name: 'authentication', description: 'Authentication endpoints.' }, { name: 'group', description: 'Group endpoints.' }, { name: 'media', description: 'Media endpoints.' }, { name: 'post', description: 'Post endpoints.' }, { name: 'user', description: 'User endpoints.' }, ], host: 'localhost', schemes: ['http', 'https'], }, })
server.register(api)
server.ready(err => { if (err) throw err server.swagger() })
const port = parseInt(process.env.PORT!, 10)
server.listen(port, (err, address) => { if (err) { server.log.error(err) process.exit(1) }
server.log.info(`✊🏾 Flexor API listening at ${address}`) })
|