koopjs / koop-provider-elasticsearch

A provider for koop that can connect to one or more elastic search instances and turn indices/aliases into individual feature services.
Apache License 2.0
13 stars 4 forks source link

when a configured property in returnFields points to an array the value in the response is serialized as [object Object] #36

Open steveliles opened 3 years ago

steveliles commented 3 years ago

A property in elasticsearch can be a single value or an array. When the value is an array this provider currently serializes it as

[object Object]

but could instead flatten the array to e.g.

property.0: "foo", 
property.1: "bar"

or for arrays of objects with nested properties:

property.0.a: "foo", 
property.0.b: "bar", 
property.1.a: "fizz", 
property.1.b: "buzz"

Its a super-simple fix to make this work: in src/utils/hitConverter.js: change the opts given to flatten on line 34 to {safe: false}.

The fix is so simple that it made me wonder if this was on purpose (that there's a good reason not to try to support arrays at all) and being new to koop and esri featureserver i'm missing something?