21 lines
661 B
JavaScript
21 lines
661 B
JavaScript
import { escapeUri } from "@smithy/util-uri-escape";
|
|
export function buildQueryString(query) {
|
|
const parts = [];
|
|
for (let key of Object.keys(query).sort()) {
|
|
const value = query[key];
|
|
key = escapeUri(key);
|
|
if (Array.isArray(value)) {
|
|
for (let i = 0, iLen = value.length; i < iLen; i++) {
|
|
parts.push(`${key}=${escapeUri(value[i])}`);
|
|
}
|
|
}
|
|
else {
|
|
let qsEntry = key;
|
|
if (value || typeof value === "string") {
|
|
qsEntry += `=${escapeUri(value)}`;
|
|
}
|
|
parts.push(qsEntry);
|
|
}
|
|
}
|
|
return parts.join("&");
|
|
}
|