query-strings-parser
Version:
Middleware to transform query strings in a format that is recognized by the MongoDB, MySQL and other databases...
38 lines (32 loc) • 902 B
JavaScript
function ordination(query, options) {
const result = {}
if (query.sort) {
if (query.sort instanceof Array) {
query.sort.forEach(function (elem) {
Object.assign(result, processQuery(elem))
})
return validate_sort(result, options.default.sort)
}
return validate_sort(processQuery(query.sort), options.default.sort)
}
return options.default.sort
}
function processQuery(query) {
const result = {}
query = query.replace(/([^\w\s,.-])|(\s{1,})/gi, '')
query.split(',').forEach(function (elem) {
elem = elem.trim()
if (elem[0] === '-') result[elem.substr(1)] = -1
else result[elem] = 1
})
return result
}
function validate_sort(_values, _default) {
return {
..._default, ..._values
}
}
exports = module.exports = {
sort: ordination
}