/**
* Attaches metadata to strings for manual execution, handling edge cases.
*
* @param {string} str The input string.
* @param {object} metadata An object containing metadata to attach.
* @returns {string} The string with metadata attached as a comment. Returns the original string if input is invalid.
*/
function attachMetadata(str, metadata) {
if (typeof str !== 'string') {
console.warn("Invalid input: Input must be a string. Returning original input.");
return str; // Handle non-string input
}
if (typeof metadata !== 'object' || metadata === null) {
console.warn("Invalid metadata: Metadata must be an object. Returning original string.");
return str; // Handle null/non-object metadata
}
let metadataString = "";
for (const key in metadata) {
if (metadata.hasOwnProperty(key)) {
metadataString += `// Metadata: ${key}=${metadata[key]}\n`;
}
}
return `${str}\n${metadataString}`;
}
Add your comment