forked from extern/bruno
39 lines
789 B
JavaScript
39 lines
789 B
JavaScript
|
import isEmpty from 'lodash/isEmpty';
|
||
|
import trim from 'lodash/trim';
|
||
|
import each from 'lodash/each';
|
||
|
import splitOnFirst from 'split-on-first';
|
||
|
|
||
|
export const parseQueryParams = (query) => {
|
||
|
if(!query || !query.length) {
|
||
|
return [];
|
||
|
}
|
||
|
|
||
|
let params = query.split("&");
|
||
|
let result = [];
|
||
|
|
||
|
for (let i = 0; i < params.length; i++) {
|
||
|
let pair = splitOnFirst(params[i], '=');;
|
||
|
result.push({
|
||
|
name: pair[0],
|
||
|
value: pair[1]
|
||
|
});
|
||
|
}
|
||
|
|
||
|
return result;
|
||
|
};
|
||
|
|
||
|
export const stringifyQueryParams = (params) => {
|
||
|
if(!params || isEmpty(params)) {
|
||
|
return '';
|
||
|
}
|
||
|
|
||
|
let queryString = [];
|
||
|
each(params, (p) => {
|
||
|
if(!isEmpty(trim(p.name)) && !isEmpty(trim(p.value))) {
|
||
|
queryString.push(`${p.name}=${p.value}`);
|
||
|
}
|
||
|
});
|
||
|
|
||
|
return queryString.join('&');
|
||
|
};
|