UNPKG

@blue-impact-engine/blue-impact-engine-client

Version:
57 lines 1.77 kB
/** * 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