mirror of
https://github.com/typicode/json-server.git
synced 2025-07-31 06:01:50 +08:00
Add _like operator, credit goes to @tony-kerz for the idea
This commit is contained in:
@ -74,7 +74,8 @@ module.exports = function (db, name) {
|
||||
query === '_' ||
|
||||
query.indexOf('_lte') !== -1 ||
|
||||
query.indexOf('_gte') !== -1 ||
|
||||
query.indexOf('_ne') !== -1
|
||||
query.indexOf('_ne') !== -1 ||
|
||||
query.indexOf('_like') !== -1
|
||||
) return
|
||||
}
|
||||
delete req.query[query]
|
||||
@ -109,12 +110,12 @@ module.exports = function (db, name) {
|
||||
.map(function (value) {
|
||||
var isDifferent = key.indexOf('_ne') !== -1
|
||||
var isRange = key.indexOf('_lte') !== -1 || key.indexOf('_gte') !== -1
|
||||
var path = key.replace(/(_lte|_gte|_ne)$/, '')
|
||||
var elementValue
|
||||
var isLike = key.indexOf('_like') !== -1
|
||||
var path = key.replace(/(_lte|_gte|_ne|_like)$/, '')
|
||||
var elementValue = _.get(element, path)
|
||||
|
||||
if (isRange) {
|
||||
var isLowerThan = key.indexOf('_gte') !== -1
|
||||
elementValue = _.get(element, path)
|
||||
|
||||
if (isLowerThan) {
|
||||
return value <= elementValue
|
||||
@ -122,8 +123,9 @@ module.exports = function (db, name) {
|
||||
return value >= elementValue
|
||||
}
|
||||
} else if (isDifferent) {
|
||||
elementValue = _.get(element, path)
|
||||
return value !== elementValue
|
||||
} else if (isLike) {
|
||||
return new RegExp(value).test(elementValue)
|
||||
} else {
|
||||
return _.matchesProperty(key, value)(element)
|
||||
}
|
||||
|
Reference in New Issue
Block a user