function validateTaskQueue(queue) {
// Check if queue is an array
if (!Array.isArray(queue)) {
return { error: "Queue must be an array" };
}
// Validate each task in the queue
for (let i = 0; i < queue.length; i++) {
const task = queue[i];
// Check if task is an object
if (typeof task !== 'object' || task === null) {
return { error: `Task at index ${i} must be an object` };
}
// Check if task has required properties
if (!task.hasOwnProperty('name')) {
return { error: `Task at index ${i} must have a 'name' property` };
}
if (!task.hasOwnProperty('data')) {
return { error: `Task at index ${i} must have a 'data' property` };
}
if (!task.hasOwnProperty('priority')) {
return {error: `Task at index ${i} must have a 'priority' property`}
}
// Validate data type of 'name'
if (typeof task.name !== 'string') {
return { error: `Task name at index ${i} must be a string` };
}
// Validate data type of 'data'
if (typeof task.data !== 'object' || task.data === null) {
return { error: `Task data at index ${i} must be an object` };
}
// Validate priority is a number
if (typeof task.priority !== 'number' || isNaN(task.priority)) {
return { error: `Task priority at index ${i} must be a number` };
}
}
// If all validations pass, return null
return null;
}
Add your comment