pofider / node-simple-odata-server

Simple OData server for node.js
MIT License
97 stars 60 forks source link

left.value as canonical path generates object with items not in input order?[partial code?] #52

Open eldhoabraham94 opened 1 year ago

eldhoabraham94 commented 1 year ago

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 } }