33 lines
829 B
TypeScript
33 lines
829 B
TypeScript
import { drizzle } from 'drizzle-orm/libsql'
|
|
import * as schema from './schema'
|
|
|
|
let _db: ReturnType<typeof drizzle> | null = null
|
|
|
|
export function useDB() {
|
|
if (_db) return _db
|
|
|
|
const config = useRuntimeConfig()
|
|
let dbPath = config.pathDb || process.env.PATH_DB
|
|
|
|
if (!dbPath) {
|
|
throw new Error('PATH_DB is not configured')
|
|
}
|
|
|
|
// Convertir le chemin en URL file:// si ce n'est pas déjà une URL
|
|
if (!dbPath.startsWith('file:') && !dbPath.startsWith('libsql:') && !dbPath.startsWith('http')) {
|
|
// Si c'est un chemin relatif, le rendre absolu
|
|
if (!dbPath.startsWith('/')) {
|
|
dbPath = `file:${process.cwd()}/${dbPath}`
|
|
} else {
|
|
dbPath = `file:${dbPath}`
|
|
}
|
|
}
|
|
|
|
console.log('🗄️ Connexion à la DB:', dbPath)
|
|
|
|
_db = drizzle(dbPath, { schema })
|
|
return _db
|
|
}
|
|
|
|
export { schema }
|