/**
* Surfaces potential data errors for staging environments.
*
* @param {object} data The user data to validate.
* @param {object} options Optional configuration.
* @param {boolean} options.enable Whether to enable validation. Defaults to true.
* @param {string[]} options.requiredFields An array of required field names.
* @param {function} options.customValidation A custom validation function.
* @returns {string[]} An array of error messages. Empty array if no errors.
*/
function validateStagingData(data, options = {}) {
const { enable = true, requiredFields = [], customValidation = () => [] } = options;
const errors = [];
if (!enable) {
return errors; // Return empty array if validation is disabled
}
// Required fields validation
for (const field of requiredFields) {
if (!data.hasOwnProperty(field) || data[field] === null || data[field] === undefined || data[field] === "") {
errors.push(`Field "${field}" is required.`);
}
}
// Custom validation
const customErrors = customValidation(data);
errors.push(...customErrors);
return errors;
}
Add your comment