templates/todo/api/js/src/models/mongoose.ts (26 lines of code) (raw):

import mongoose from "mongoose"; import { DatabaseConfig } from "../config/appConfig"; import { logger } from "../config/observability"; export const configureMongoose = async (config: DatabaseConfig) => { mongoose.set("toJSON", { virtuals: true, versionKey: false, transform: (_, converted) => { converted.id = converted._id; delete converted._id; } }); try { const db = mongoose.connection; db.on("connecting", () => logger.info("Mongoose connecting...")); db.on("connected", () => logger.info("Mongoose connected successfully!")); db.on("disconnecting", () => logger.info("Mongoose disconnecting...")); db.on("disconnected", () => logger.info("Mongoose disconnected successfully!")); db.on("error", (err: Error) => logger.error("Mongoose database error:", err)); await mongoose.connect(config.connectionString, { dbName: config.databaseName }); } catch (err) { logger.error(`Mongoose database error: ${err}`); throw err; } };