From b285e0a73b0031491c7c72d5a84d04c2b7592c9e Mon Sep 17 00:00:00 2001 From: Ayo Date: Wed, 3 Jun 2026 22:17:05 +0200 Subject: [PATCH] feat: expose mcfly logger to server framework; log api URL --- demo/src/api/index.js | 5 +++++ eslint.config.mjs | 2 +- packages/core/src/commands/serve.ts | 9 ++++++++- packages/fastify/serve.js | 13 +++++++++---- 4 files changed, 23 insertions(+), 6 deletions(-) create mode 100644 demo/src/api/index.js diff --git a/demo/src/api/index.js b/demo/src/api/index.js new file mode 100644 index 0000000..ab7329b --- /dev/null +++ b/demo/src/api/index.js @@ -0,0 +1,5 @@ +export default async (fastify) => { + fastify.get('/', async function (request, reply) { + return 'This is the API Index' + }) +} diff --git a/eslint.config.mjs b/eslint.config.mjs index c8760e1..0490e0e 100644 --- a/eslint.config.mjs +++ b/eslint.config.mjs @@ -16,7 +16,7 @@ export default [ eslintPluginPrettierRecommended, includeIgnoreFile(gitignorePath), { - ignores: ['site/*', 'templates/*', '**/public/*'], + ignores: ['site/*', 'templates/*', '**/public/*', 'demo/*'], }, { rules: { diff --git a/packages/core/src/commands/serve.ts b/packages/core/src/commands/serve.ts index fb40e65..74f13cc 100644 --- a/packages/core/src/commands/serve.ts +++ b/packages/core/src/commands/serve.ts @@ -8,6 +8,7 @@ import { resolve } from 'pathe' // import { fileURLToPath } from 'node:url' // import { dirname } from 'pathe' import { getMcFlyConfig } from '../get-config.js' +import type { McFlyConfig } from '../../../config/dist/define-config.js' // const __filename = fileURLToPath(import.meta.url) // const __dirname = dirname(__filename) @@ -37,7 +38,13 @@ async function serve(args: ParsedArgs) { * - autoLoad config * - fastify config */ - mcflyConfig.server.serve({ rootDir: rootDir + '/src', apiDir: '/api' }) + if (mcflyConfig.server) + mcflyConfig.server.serve({ + rootDir: rootDir + '/src', + apiDir: '/api', + logger: consola, + }) + else consola.error('[McFly]: `server` configuration required') } catch (e) { consola.error(e) } diff --git a/packages/fastify/serve.js b/packages/fastify/serve.js index a55ad4b..4fdcbae 100644 --- a/packages/fastify/serve.js +++ b/packages/fastify/serve.js @@ -2,8 +2,9 @@ import Fastify from 'fastify' import AutoLoad from '@fastify/autoload' import path from 'node:path' -export default ({ rootDir, apiDir }) => { - const server = Fastify({ logger: true }) +export default ({ rootDir, apiDir, logger, port }) => { + const server = Fastify() + const portNumber = port ?? 3000 server.register(AutoLoad, { dir: path.join(rootDir, apiDir), @@ -12,6 +13,10 @@ export default ({ rootDir, apiDir }) => { }, }) - console.log('[INFO]: Watching for file changes in', rootDir) - server.listen({ port: 3000 }) + server + .listen({ port: portNumber }) + .then(() => { + logger.log(`API now serving at http://localhost:${portNumber}${apiDir}`) + }) + .catch((err) => logger.error(err)) }