shift-admin-ui-kit
Version:
UI Kit for Shift Commerce Projects
37 lines (30 loc) • 873 B
JavaScript
export default function composeQueryString(object) {
let queryString = ""
let iterateQuery = (subObject) => {
return Object.keys(subObject).map((key, index) => {
if (typeof subObject[key] === "object") {
return iterateQuery(subObject[key]).map((subSubObject) => {
return `[${key}]${subSubObject}`
})
} else {
return `[${key}]=${subObject[key]}`
}
})
}
Object.keys(object).map((key, index) => {
if (typeof object[key] === 'object') {
iterateQuery(object[key]).map((extendedQuery, index2) => {
if (index > 0 || index2 > 0) {
queryString += "&"
}
queryString += key + extendedQuery
})
} else {
if (index > 0) {
queryString += "&"
}
queryString += `${key}=${object[key]}`
}
})
return "?" + encodeURI(queryString)
}