Closed lukelaws closed 8 years ago
Great, thank you for the PR. I think it is the right API.
As a side note, I would have preferred to keep the units identifiers hidden and encapsulated but since I have not found a way to avoid it, this PR is the good opportunity to include this feature.
This is one solution to the issue. In #14 @rage-shadowman had mentioned "Another alternative, if you don't want ambiguous arrays, would be to return only the unit names (ie: for "" return "liter" -- the name sans the "<>" chars) and a getAliases method to get all the aliases for a named unit (["l", "L", "liter", "liters", "litre", "litres"]) or maybe event all the alternative aliases for a given alias (such that getAlternatives("liter") returns an identical array to getAlternatives("L"))."
I agree the grouped arrays are ambiguous, so I'm using that approach:
So only one name for each unit is returned. Also:
So getUnits is sorted to make it perfect for feeding choices to the user. (Select box, predictive input)
@gentooboontoo also mentioned the getAliases method and again i agree, these should be separate functions. If this goes over well I can make a separate commit for the getPrefixes but I think there are quite a few versions of that that looked great already. They just are bundled up with these other changes.
Thanks for js-quantities! It's working out for us.