const fs = require('fs');
const path = require('path');
/**
* Formats session cookies for data migration based on a configuration file.
*
* @param {string} configPath Path to the configuration file.
* @returns {string} Formatted session cookie data.
* @throws {Error} If the configuration file is invalid or missing.
*/
function formatSessionCookies(configPath) {
try {
const config = require(path.resolve(configPath)); // Load config from path
if (!config || typeof config !== 'object') {
throw new Error('Invalid configuration file: Must be an object.');
}
const sessionCookies = config.sessionCookies;
if (!sessionCookies || !Array.isArray(sessionCookies)) {
throw new Error('Missing or invalid sessionCookies array in configuration.');
}
let formattedOutput = '';
for (const cookie of sessionCookies) {
const { name, value, domain, path, expiry } = cookie;
//Handle missing expiry gracefully.
const expiryString = expiry ? ` expires="${expiry}"` : '';
formattedOutput += `name=${name},value=${value}`;
if (domain) {
formattedOutput += `,domain=${domain}`;
}
if (path) {
formattedOutput += `,path=${path}`;
}
formattedOutput += expiryString;
formattedOutput += '\n';
}
return formattedOutput;
} catch (error) {
console.error('Error formatting session cookies:', error.message);
throw error; // Re-throw to allow calling function to handle the error.
}
}
module.exports = formatSessionCookies;
Add your comment