import { Injectable, Logger } from '@nestjs/common'; import { readFileSync } from 'fs'; import { join } from 'path'; @Injectable() export class SqlLoaderService { private readonly logger = new Logger(SqlLoaderService.name); private readonly sqlRootPath = join(__dirname, '../sql/queries'); loadQuery(module: string, queryName: string, path: string): string { const filePath = join(process.cwd(), path, module, `${queryName}.sql`); try { return readFileSync(filePath, 'utf8'); } catch (error) { this.logger.error( `Failed to load SQL query: ${module}/${queryName}`, error.stack, ); throw new Error(`SQL query not found: ${module}/${queryName}`); } } }