/**
* Initializes query string components for testing.
*
* @param {string} queryString The query string to parse.
* @returns {object} An object containing the parsed query string components.
*/
function initQueryString(queryString) {
const params = {};
if (queryString) {
const pairs = queryString.startsWith('?') ? queryString.slice(1).split('&') : queryString.split('&');
for (const pair of pairs) {
if (pair) {
const [key, value] = pair.split('=');
params[key] = value || true; // Default to true if no value is provided.
}
}
}
return params;
}
// Example usage (for testing purposes)
// const queryString = "param1=value1¶m2=value2¶m3";
// const params = initQueryString(queryString);
// console.log(params); // Output: { param1: 'value1', param2: 'value2', param3: true }
// Support for older browsers that might not have startsWith
function initQueryStringOldBrowser(queryString) {
const params = {};
if (queryString) {
const pairs = queryString.split('&');
for (const pair of pairs) {
if (pair) {
const [key, value] = pair.split('=');
params[key] = value || true;
}
}
}
return params;
}
Add your comment