/**
* Binds arguments from URL query parameters to a JavaScript object.
* Handles missing parameters with default values and provides error messages.
*
* @param {string} urlString The URL string to parse.
* @param {object} defaultValues An object containing default values for missing parameters.
* @returns {object} An object containing the parsed URL parameters, or null if an error occurs.
*/
function parseURLArguments(urlString, defaultValues = {}) {
try {
const url = new URL(urlString);
const params = {};
for (const key in url.searchParams) {
if (url.searchParams.has(key)) {
params[key] = url.searchParams.get(key); // Get the value of the parameter
}
}
// Merge with default values
for (const key in defaultValues) {
params[key] = defaultValues[key]; // Use default if not found in URL
}
return params;
} catch (error) {
console.error("Error parsing URL:", error.message); // Log the error
return null; // Return null on error
}
}
Add your comment