From ef55d9bb24430610b60c1b77821307cd72c08c55 Mon Sep 17 00:00:00 2001 From: zwlucas Date: Sat, 25 Jul 2026 18:23:29 -0300 Subject: feat: upload of the project Signed-off-by: zwlucas --- api/src/plugins/db.plugin.ts | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 api/src/plugins/db.plugin.ts (limited to 'api/src/plugins/db.plugin.ts') diff --git a/api/src/plugins/db.plugin.ts b/api/src/plugins/db.plugin.ts new file mode 100644 index 0000000..47c82dd --- /dev/null +++ b/api/src/plugins/db.plugin.ts @@ -0,0 +1,31 @@ +/** + * db.plugin.ts + * + * Plugin Fastify que disponibiliza o banco de dados como decorador. + * + * Após registrar este plugin, qualquer rota pode acessar o banco via: + * fastify.db ou request.server.db + * + * O uso de fastify-plugin (fp) é essencial: sem ele, o Fastify encapsularia + * o decorador apenas no escopo do plugin, tornando-o invisível para outros plugins. + */ + +import fp from 'fastify-plugin'; +import type { FastifyInstance } from 'fastify'; +import { db, type Database } from '@/db/connection.js'; + +// Augmenta a tipagem do Fastify para incluir `db` com type-safety completo +declare module 'fastify' { + interface FastifyInstance { + db: Database; + } +} + +async function dbPlugin(fastify: FastifyInstance): Promise { + fastify.decorate('db', db); +} + +export default fp(dbPlugin, { + name: 'db-plugin', + fastify: '4.x', +}); -- cgit v1.2.3