/* * clippr: a social bookmarking service for the AT Protocol * Copyright (c) 2025 clippr contributors. * SPDX-License-Identifier: AGPL-3.0-only */ import { drizzle } from "drizzle-orm/libsql"; import { Config } from "../config.js"; import Logger from "../logger.js"; const config = Config.getInstance(); const dbname = config.get("database.name"); export class Database { private static instance: Database; private readonly db; private constructor() { this.db = drizzle({ connection: { url: `${dbname}` } }); } static getInstance(): Database { if (!Database.instance) { try { Database.instance = new Database(); } catch (e) { Logger.error(e); process.exit(1); } } return Database.instance; } getDb() { return this.db; } }