accounts page

This commit is contained in:
Joseph J Helfenbein
2025-01-25 06:13:43 -05:00
parent 1db24c5ceb
commit 1f4c828b30
12 changed files with 388 additions and 38 deletions

View File

@@ -1,6 +1,46 @@
import { clsx, type ClassValue } from "clsx"
import { twMerge } from "tailwind-merge"
import { clsx, type ClassValue } from "clsx";
import { twMerge } from "tailwind-merge";
import mongoose, { Mongoose } from "mongoose";
export function cn(...inputs: ClassValue[]) {
return twMerge(clsx(inputs))
export function cn(...inputs: ClassValue[]): string {
return twMerge(clsx(inputs));
}
interface Cached {
conn: Mongoose | null;
promise: Promise<Mongoose> | null;
}
declare global {
var mongoose: Cached;
}
export async function connectDB(): Promise<Mongoose> {
const DATABASE_URL = process.env.MONGO_URI as string;
let cached: Cached = global.mongoose;
if (!cached) {
cached = global.mongoose = { conn: null, promise: null };
}
if (cached.conn) {
return cached.conn;
}
if (!cached.promise) {
const opts = {
bufferCommands: false,
};
cached.promise = mongoose.connect(DATABASE_URL, opts).then((mongoose) => {
console.log('MongoDB connected successfully');
return mongoose;
}).catch((error) => {
console.error('Error connecting to MongoDB:', error.message);
throw new Error('Error connecting to MongoDB');
});
}
cached.conn = await cached.promise;
return cached.conn;
}