// Module for reading and filtering files const fs = require('fs'); const path = require('path'); /** * Recursively scans a directory, filters files by a pattern, and reads their content. * @param {string} dirPath - The path to the directory. * @param {string} pattern - The keyword pattern to match in the file name. * @returns {{filePath: string, content: string}[]} - An array of objects, each with the file path and its content. */ function getFileContents(dirPath, pattern) { let fileData = []; function scan(directory) { try { const entries = fs.readdirSync(directory, { withFileTypes: true }); for (const entry of entries) { const fullPath = path.join(directory, entry.name); if (entry.isDirectory()) { scan(fullPath); } else { const regex = new RegExp(pattern, 'i'); if (!pattern || regex.test(entry.name)) { try { const content = fs.readFileSync(fullPath, 'utf8'); fileData.push({ filePath: fullPath, content }); } catch (readError) { console.error(`Error reading file ${fullPath}:`, readError); } } } } } catch (scanError) { console.error(`Error scanning directory ${directory}:`, scanError); } } scan(dirPath); return fileData; } module.exports = { getFileContents };