29 lines
636 B
JavaScript
29 lines
636 B
JavaScript
import Fastify from 'fastify'
|
|
import AutoLoad from '@fastify/autoload'
|
|
import path from 'node:path'
|
|
|
|
/**
|
|
* @typedef {import('@mcflyjs/core').ServerConfig} ServerConfig
|
|
*/
|
|
|
|
/**
|
|
* @param {ServerConfig} param
|
|
*/
|
|
export default ({ rootDir, apiDir, logger, port }) => {
|
|
const server = Fastify()
|
|
const portNumber = port ?? 3000
|
|
|
|
server.register(AutoLoad, {
|
|
dir: path.join(rootDir, apiDir),
|
|
options: {
|
|
prefix: apiDir,
|
|
},
|
|
})
|
|
|
|
server
|
|
.listen({ port: portNumber })
|
|
.then(() => {
|
|
logger.log(`API now serving at http://localhost:${portNumber}${apiDir}`)
|
|
})
|
|
.catch((err) => logger.error(err))
|
|
}
|