1. /**
  2. * Exports header metadata for scheduled runs.
  3. * @param {Array<Object>} runs An array of scheduled run objects.
  4. * @returns {string} A string containing the formatted header metadata.
  5. */
  6. function exportHeaderMetadata(runs) {
  7. if (!Array.isArray(runs)) {
  8. return "Error: Input must be an array."; // Handle invalid input
  9. }
  10. let output = "";
  11. for (let i = 0; i < runs.length; i++) {
  12. const run = runs[i];
  13. if (typeof run !== 'object' || run === null) {
  14. output += "Error: Invalid run object at index " + i + "\n"; // Handle invalid run objects
  15. continue;
  16. }
  17. if (!run.headers) {
  18. output += "Warning: No headers found for run " + i + "\n"; // Handle missing headers
  19. continue;
  20. }
  21. output += `--- Run ${i + 1} Metadata ---\n`; // Indicate start of run metadata
  22. for (const headerName in run.headers) {
  23. if (run.headers.hasOwnProperty(headerName)) {
  24. const headerValue = run.headers[headerName];
  25. output += ` ${headerName}: ${JSON.stringify(headerValue)}\n`; // Format header and value
  26. }
  27. }
  28. output += "\n"; // Add a newline between runs
  29. }
  30. return output;
  31. }

Add your comment