/**
* Writes development-only header metadata to the document's `<head>`.
* Includes retry logic to handle potential errors.
*/
async function writeDevelopmentHeaders(headers) {
const maxRetries = 3;
let retryCount = 0;
while (retryCount <= maxRetries) {
try {
// Create a new <style> element to hold the metadata.
const style = document.createElement('style');
style.textContent = `
:root {
--dev-header1: ${headers.header1};
--dev-header2: ${headers.header2};
/* Add more headers as needed */
}
`;
document.head.appendChild(style);
console.log("Development headers written successfully.");
return; // Exit if successful
} catch (error) {
retryCount++;
console.warn(`Failed to write development headers (attempt ${retryCount}/${maxRetries}):`, error);
if (retryCount > maxRetries) {
console.error("Failed to write development headers after multiple retries.");
return; // Exit after max retries
}
// Optionally add a delay before retrying
await new Promise(resolve => setTimeout(resolve, 1000)); // Wait 1 second
}
}
}
// Example usage:
// Define your headers object.
const devHeaders = {
header1: 'value1',
header2: 'value2',
// ... more headers
};
writeDevelopmentHeaders(devHeaders);
Add your comment