1. /**
  2. * Attaches metadata to strings for manual execution, handling edge cases.
  3. *
  4. * @param {string} str The input string.
  5. * @param {object} metadata An object containing metadata to attach.
  6. * @returns {string} The string with metadata attached as a comment. Returns the original string if input is invalid.
  7. */
  8. function attachMetadata(str, metadata) {
  9. if (typeof str !== 'string') {
  10. console.warn("Invalid input: Input must be a string. Returning original input.");
  11. return str; // Handle non-string input
  12. }
  13. if (typeof metadata !== 'object' || metadata === null) {
  14. console.warn("Invalid metadata: Metadata must be an object. Returning original string.");
  15. return str; // Handle null/non-object metadata
  16. }
  17. let metadataString = "";
  18. for (const key in metadata) {
  19. if (metadata.hasOwnProperty(key)) {
  20. metadataString += `// Metadata: ${key}=${metadata[key]}\n`;
  21. }
  22. }
  23. return `${str}\n${metadataString}`;
  24. }

Add your comment