social bookmarking for atproto
1/* 2 * clippr: a social bookmarking service for the AT Protocol 3 * Copyright (c) 2025 clippr contributors. 4 * SPDX-License-Identifier: AGPL-3.0-only 5 */ 6 7import { drizzle } from "drizzle-orm/libsql"; 8import { Config } from "../config.js"; 9import Logger from "../logger.js"; 10 11const config = Config.getInstance(); 12const dbname = config.get("database.name"); 13 14export class Database { 15 private static instance: Database; 16 private readonly db; 17 18 private constructor() { 19 this.db = drizzle({ connection: { url: `${dbname}` } }); 20 } 21 22 static getInstance(): Database { 23 if (!Database.instance) { 24 try { 25 Database.instance = new Database(); 26 } catch (e) { 27 Logger.error(e); 28 process.exit(1); 29 } 30 } 31 return Database.instance; 32 } 33 34 getDb() { 35 return this.db; 36 } 37}