From 576533991d014a6b611b41074e2fb1212a9cf616 Mon Sep 17 00:00:00 2001 From: Yam Borodetsky Date: Sat, 30 Mar 2024 22:35:40 +0500 Subject: [PATCH] fix: fastify multiple endpoints --- apps/api/src/index.ts | 5 +++-- apps/api/src/routes.ts | 14 ++++++++++++++ apps/api/src/utils.ts | 31 ------------------------------- 3 files changed, 17 insertions(+), 33 deletions(-) create mode 100644 apps/api/src/routes.ts diff --git a/apps/api/src/index.ts b/apps/api/src/index.ts index ac763d8..a80d417 100644 --- a/apps/api/src/index.ts +++ b/apps/api/src/index.ts @@ -21,7 +21,8 @@ import { onRequest } from 'firebase-functions/v2/https'; import { fastify } from 'fastify'; import * as logger from 'firebase-functions/logger'; -import { registerRoutes, setContentTypeParser } from './utils'; +import { setContentTypeParser } from './utils'; +import { routes } from './routes'; const app = fastify({ logger: true, @@ -44,7 +45,7 @@ setContentTypeParser( } ); -registerRoutes(app); +void app.register(routes, { prefix: '/api' }); export const server = onRequest(async (request, response) => { await app.ready(); diff --git a/apps/api/src/routes.ts b/apps/api/src/routes.ts new file mode 100644 index 0000000..5091195 --- /dev/null +++ b/apps/api/src/routes.ts @@ -0,0 +1,14 @@ +import { faker } from '@faker-js/faker'; +import { type FastifyPluginCallback } from 'fastify'; +import { iLikeTurtles } from 'utilities'; + +export const routes: FastifyPluginCallback = (fastify, _options, done) => { + fastify.get('/legacy', () => ({ + hello: 'world!', + randomName: faker.person.firstName(), + iLikeTurtles: iLikeTurtles(), + nice: 69, + })); + + done(); +}; diff --git a/apps/api/src/utils.ts b/apps/api/src/utils.ts index 8cf9e81..bce0a60 100644 --- a/apps/api/src/utils.ts +++ b/apps/api/src/utils.ts @@ -1,5 +1,3 @@ -import { iLikeTurtles } from 'utilities'; -import { faker } from '@faker-js/faker'; import type { AddContentTypeParser, FastifyInstance } from 'fastify'; export const setContentTypeParser = ( @@ -9,32 +7,3 @@ export const setContentTypeParser = ( app.removeContentTypeParser(contentType); app.addContentTypeParser(contentType, opts, parser); }; - -export const registerRoutes = (fastify: FastifyInstance) => { - // define your endpoints here... - // fastify.post('/some-route-here', (_request) => { - // return { message: 'Hello World!!' }; - // }); - - // fastify.get('/', async (request, reply) => { - // void reply.send({ message: 'Hello World!!' }); - // }); - - // fastify.get('/legacy', (_req, res) => { - // void res.send({ - // hello: 'world', - // randomName: faker.person.firstName(), - // iLikeTurtles: iLikeTurtles(), - // nice: 69, - // }); - // }); - - fastify.get('*', (_req, res) => { - void res.send({ - hello: 'world!', - randomName: faker.person.firstName(), - iLikeTurtles: iLikeTurtles(), - nice: 69, - }); - }); -};