1. /**
  2. * Binds arguments from URL query parameters to a JavaScript object.
  3. * Handles missing parameters with default values and provides error messages.
  4. *
  5. * @param {string} urlString The URL string to parse.
  6. * @param {object} defaultValues An object containing default values for missing parameters.
  7. * @returns {object} An object containing the parsed URL parameters, or null if an error occurs.
  8. */
  9. function parseURLArguments(urlString, defaultValues = {}) {
  10. try {
  11. const url = new URL(urlString);
  12. const params = {};
  13. for (const key in url.searchParams) {
  14. if (url.searchParams.has(key)) {
  15. params[key] = url.searchParams.get(key); // Get the value of the parameter
  16. }
  17. }
  18. // Merge with default values
  19. for (const key in defaultValues) {
  20. params[key] = defaultValues[key]; // Use default if not found in URL
  21. }
  22. return params;
  23. } catch (error) {
  24. console.error("Error parsing URL:", error.message); // Log the error
  25. return null; // Return null on error
  26. }
  27. }

Add your comment