* Validate an entry against the schema * @param {object} data - Parsed YAML data * @param {string} filePath - File path for error messages * @returns {object} { valid: boolean, errors: array|null }
(data, filePath)
| 34 | * @returns {object} { valid: boolean, errors: array|null } |
| 35 | */ |
| 36 | function validateEntry(data, filePath) { |
| 37 | const validate = getValidator(); |
| 38 | |
| 39 | // Remove internal metadata fields before validation |
| 40 | const cleanData = { ...data }; |
| 41 | delete cleanData._filePath; |
| 42 | delete cleanData._fileName; |
| 43 | |
| 44 | const valid = validate(cleanData); |
| 45 | |
| 46 | if (!valid) { |
| 47 | const errors = validate.errors.map(err => ({ |
| 48 | path: err.instancePath || '/', |
| 49 | message: err.message, |
| 50 | keyword: err.keyword, |
| 51 | params: err.params |
| 52 | })); |
| 53 | return { valid: false, errors, filePath }; |
| 54 | } |
| 55 | |
| 56 | return { valid: true, errors: null, filePath }; |
| 57 | } |
| 58 | |
| 59 | /** |
| 60 | * Format validation errors for display |
no test coverage detected