lib/net/queryfields.js (22 lines of code) (raw):
/**
* @param {*} it
* @returns {string}
*/
function queryfields(it) {
if (it === undefined) {
return '';
}
if (typeof it === 'string') {
return it;
}
if (Array.isArray(it)) {
return it.map((i) => queryfields(i)).join(',');
}
if (it !== null && typeof it === 'object') {
return queryfields(
Object.keys(it).reduce((/**@type {string[]}*/result, /**@type {string}*/i) => {
return result.concat(
i + '(' + queryfields(it[i]) + ')'
);
}, [])
);
}
return '';
}
module.exports = queryfields;