@blue-impact-engine/blue-impact-engine-client
Version:
Blue Impact Engine API Client
57 lines • 1.77 kB
JavaScript
/**
* Query parameter utilities
*/
export const queryParams = {
/**
* Build query string from object
* @param params - Parameters object
* @returns string - Query string
*/
buildQueryString(params) {
const searchParams = new URLSearchParams();
for (const [key, value] of Object.entries(params)) {
if (value !== undefined && value !== null) {
if (Array.isArray(value)) {
value.forEach((item) => searchParams.append(key, String(item)));
}
else if (typeof value === "object") {
searchParams.append(key, JSON.stringify(value));
}
else {
searchParams.append(key, String(value));
}
}
}
return searchParams.toString();
},
/**
* Parse query string to object
* @param queryString - Query string to parse
* @returns object - Parsed parameters
*/
parseQueryString(queryString) {
const params = {};
const searchParams = new URLSearchParams(queryString);
for (const [key, value] of searchParams.entries()) {
try {
// Try to parse as JSON
params[key] = JSON.parse(value);
}
catch {
// If not JSON, use as string
params[key] = value;
}
}
return params;
},
/**
* Merge query parameters
* @param base - Base parameters
* @param additional - Additional parameters
* @returns object - Merged parameters
*/
merge(base, additional) {
return { ...base, ...additional };
},
};
//# sourceMappingURL=httpUtils.js.map