1. /**
  2. * Extends text file hypothesis validation with error messages.
  3. *
  4. * @param {string} filePath The path to the text file.
  5. * @param {function} validationFunction The existing validation function. Takes the file content as input.
  6. * @returns {Promise<object>} A promise that resolves with the validation results, including errors.
  7. */
  8. async function extendTextFileValidation(filePath, validationFunction) {
  9. try {
  10. const fs = require('fs').promises; // Use promises for async file reading
  11. const fileContent = await fs.readFile(filePath, 'utf8'); // Read file content
  12. const results = validationFunction(fileContent); // Run existing validation
  13. if (results && Array.isArray(results)) {
  14. // Add error handling and validation messages
  15. const errors = [];
  16. for (let i = 0; i < results.length; i++) {
  17. if (results[i].error) {
  18. errors.push({
  19. line: results[i].line, // Add line number
  20. message: results[i].error,
  21. });
  22. }
  23. }
  24. if(errors.length > 0) {
  25. results.errors = errors; //add errors to results
  26. }
  27. }
  28. return results; // Return results, including validation errors
  29. } catch (error) {
  30. console.error(`Error reading or processing file: ${error.message}`);
  31. return { error: `File error: ${error.message}` }; // Return an error object
  32. }
  33. }

Add your comment