Merge branch 'dev' of https://git.jetbrains.space/nalpari/q-cast-iii/qcast-front into dev
This commit is contained in:
commit
5f5ef4cb78
@ -9,3 +9,45 @@ export const isObjectNotEmpty = (obj) => {
|
||||
}
|
||||
return Object.keys(obj).length > 0
|
||||
}
|
||||
|
||||
/**
|
||||
* ex) const params = {page:10, searchDvsnCd: 20}
|
||||
* @param {*} params
|
||||
* @returns page=10&searchDvsnCd=20
|
||||
*/
|
||||
export const queryStringFormatter = (params = {}) => {
|
||||
const queries = []
|
||||
Object.keys(params).forEach((parameterKey) => {
|
||||
const parameterValue = params[parameterKey]
|
||||
|
||||
if (parameterValue === undefined || parameterValue === null) {
|
||||
return
|
||||
}
|
||||
|
||||
// string trim
|
||||
if (typeof parameterValue === 'string' && !parameterValue.trim()) {
|
||||
return
|
||||
}
|
||||
|
||||
// array to query string
|
||||
if (Array.isArray(parameterValue)) {
|
||||
// primitive type
|
||||
if (parameterValue.every((v) => typeof v === 'number' || typeof v === 'string')) {
|
||||
queries.push(`${encodeURIComponent(parameterKey)}=${parameterValue.map((v) => encodeURIComponent(v)).join(',')}`)
|
||||
return
|
||||
}
|
||||
// reference type
|
||||
if (parameterValue.every((v) => typeof v === 'object' && v !== null)) {
|
||||
parameterValue.map((pv, i) => {
|
||||
return Object.keys(pv).forEach((valueKey) => {
|
||||
queries.push(`${encodeURIComponent(`${parameterKey}[${i}].${valueKey}`)}=${encodeURIComponent(pv[valueKey])}`)
|
||||
})
|
||||
})
|
||||
return
|
||||
}
|
||||
}
|
||||
// 나머지
|
||||
queries.push(`${encodeURIComponent(parameterKey)}=${encodeURIComponent(parameterValue)}`)
|
||||
})
|
||||
return queries.join('&')
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user