Files
MeshBot/src/mesh/mesh.module.ts
T

29 lines
925 B
TypeScript

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 {}