import { Module } from '@nestjs/common'; import { mkdirSync } from 'node:fs'; import { dirname } from 'node:path'; import { DatabaseSync } from 'node:sqlite'; import { McpController } from './mcp.controller.js'; import { MeshController } from './mesh.controller.js'; import { initMessagesTable, MeshService } from './mesh.service.js'; // SQLite-backed message history: file path from MESH_DB_PATH (default ./data/mesh-bot.db), parent dir created if missing. function openMessageDb(): DatabaseSync { const path = process.env.MESH_DB_PATH ?? './data/mesh-bot.db'; mkdirSync(dirname(path), { recursive: true }); const db = new DatabaseSync(path); initMessagesTable(db); return db; } @Module({ controllers: [MeshController, McpController], providers: [ { provide: MeshService, useFactory: () => new MeshService(openMessageDb()), }, ], exports: [MeshService], }) export class MeshModule {}