The following code separates the input filter value $filter=(location/address/firstname eq 'John') into an object.
The object results with the '/' sepated items in no alphabetical order, misrepresenting the original order.
Is it a partial code?
Node.prototype._prop = function (result, left, rightValue) {
if (left.type === 'property' && left.name.indexOf('/') !== -1) {
const fragments = left.name.split('/')
const obj = result[fragments[0]] || {}
for (let i = 1; i < fragments.length; i++) {
if (i === (fragments.length - 1)) {
obj[fragments[i]] = rightValue
} else {
obj[fragments[i]] = obj[fragments[i]] || {}
}
}
result[fragments[0]] = obj
} else {
result[left.name] = rightValue
}
}