UNPKG

@damourlabs/euro-clinical-trials

Version:

A Nuxt 3 application for visualizing and managing clinical trials data in Europe, built with modern web technologies.

47 lines (37 loc) 1.18 kB
import { PGlite } from '@electric-sql/pglite' let dbInstance: PGlite | null = null export default defineNitroPlugin(async (nitroApp) => { const { dataDir } = useRuntimeConfig().pgliteMigrations console.log('🔌 Initializing database connection...') // Initialize database instance dbInstance = new PGlite({ dataDir: dataDir, }) // Test database connection try { await dbInstance.exec('SELECT 1') console.log('✅ Database connection established') } catch (error) { console.error('❌ Database connection failed:', error) throw error } // Register database instance globally globalThis.appDatabase = () => { if (!dbInstance) { throw new Error('Database not initialized') } return dbInstance } // Clean up on app close nitroApp.hooks.hook('close', async () => { if (dbInstance) { console.log('🔌 Closing database connection...') await dbInstance.close() dbInstance = null } }) }) // Type declaration for global appDatabase function declare global { var appDatabase: () => PGlite }