diff options
| author | zwlucas <lucas.fariamo08@gmail.com> | 2026-07-25 21:23:29 +0000 |
|---|---|---|
| committer | zwlucas <lucas.fariamo08@gmail.com> | 2026-07-25 21:23:29 +0000 |
| commit | ef55d9bb24430610b60c1b77821307cd72c08c55 (patch) | |
| tree | e6935a810b34370b0a4c821e55f6397aac50c832 /api/src/plugins/db.plugin.ts | |
| download | helpdesk-master.tar.gz helpdesk-master.zip | |
Signed-off-by: zwlucas <lucas.fariamo08@gmail.com>
Diffstat (limited to 'api/src/plugins/db.plugin.ts')
| -rw-r--r-- | api/src/plugins/db.plugin.ts | 31 |
1 files changed, 31 insertions, 0 deletions
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<void> { + fastify.decorate('db', db); +} + +export default fp(dbPlugin, { + name: 'db-plugin', + fastify: '4.x', +}); |