1. function validateTaskQueue(queue) {
  2. // Check if queue is an array
  3. if (!Array.isArray(queue)) {
  4. return { error: "Queue must be an array" };
  5. }
  6. // Validate each task in the queue
  7. for (let i = 0; i < queue.length; i++) {
  8. const task = queue[i];
  9. // Check if task is an object
  10. if (typeof task !== 'object' || task === null) {
  11. return { error: `Task at index ${i} must be an object` };
  12. }
  13. // Check if task has required properties
  14. if (!task.hasOwnProperty('name')) {
  15. return { error: `Task at index ${i} must have a 'name' property` };
  16. }
  17. if (!task.hasOwnProperty('data')) {
  18. return { error: `Task at index ${i} must have a 'data' property` };
  19. }
  20. if (!task.hasOwnProperty('priority')) {
  21. return {error: `Task at index ${i} must have a 'priority' property`}
  22. }
  23. // Validate data type of 'name'
  24. if (typeof task.name !== 'string') {
  25. return { error: `Task name at index ${i} must be a string` };
  26. }
  27. // Validate data type of 'data'
  28. if (typeof task.data !== 'object' || task.data === null) {
  29. return { error: `Task data at index ${i} must be an object` };
  30. }
  31. // Validate priority is a number
  32. if (typeof task.priority !== 'number' || isNaN(task.priority)) {
  33. return { error: `Task priority at index ${i} must be a number` };
  34. }
  35. }
  36. // If all validations pass, return null
  37. return null;
  38. }

Add your comment