digitransit-ui/digitransit-search-util/packages/digitransit-search-util-serialize/index.js
2020-04-16 13:59:44 +03:00

26 lines
565 B
JavaScript

/**
* Serializes objects
*
* @name serialize
* @param {Object} obj Object to be serialized
* @param {Any} prefix
* @returns {String} Serialized object
* @example
* digitransit-search-util.serialize(param1, param2);
* //=true
*/
export default function serialize(obj, prefix) {
if (!obj) {
return '';
}
return Object.keys(obj)
.map(p => {
const k = prefix || p;
const v = obj[p];
return typeof v === 'object'
? serialize(v, k)
: `${encodeURIComponent(k)}=${encodeURIComponent(v)}`;
})
.join('&');
}