npm package: @sustainhawaii/unit-converter
Description: Methods for parsing measurement amounts and units from any text.
Author: Charles Koehl
Latest version: 1.5.47

## Methods for parsing measurement amounts and units from any text.


## convertUnits
Pass through convert-units module as 'convertUnits'

**Kind**: global constant  
## regexes
Pass through rgxs as regexes

**Kind**: global constant  
## fractionsToDecimals ⇒ string
Converts fractions to decimal equivalents within a string.

**Kind**: global constant  
**Params**

- str string

**Example**  
```js
"10 tablespoons (1 1/4 sticks or 5 ounces) butter" becomes "10 tablespoons (1.25 sticks or 5 ounces) butter"
```
## normalFracsToDecimals ⇒ number
Convert a string fraction like '1/4' to 0.25 or '1 1/4' to 1.25

**Kind**: global constant  
**Params**

- str string

## vulgarFracsToDecimals ⇒ number
Convert a string fraction like '1¼' or '1 ¼' to 1.25

**Kind**: global constant  
**Params**

- str string

## convertDecimalRanges
Convert strings like '1.8-2', '1 - 2.56', '1 to 2', '1 or 2' within larger strings
to the mean, min, or max of the two numbers.
Assumes vulgar fractions have been converted to decimals.

**Kind**: global constant  
**Params**

- str string
- [method] string - 'mean', 'min', or 'max'

## findUomAndAmountOfMeasurementType ⇒ object
Find the first measurement of typeOfMeasure and return unit of measure and amount.
Return undefined if no matching measure type.

**Kind**: global constant  
**Returns**: object - like {uom: 'g', amount: 52}  
**Params**

- str string
- typeOfMeasure string - ('mass', 'volume', or 'energy')
- [rangeConversionMethod] string - 'mean', 'min', or 'max'

**Example**  
```js
'10 tablespoons (1 1/4 sticks or 5 ounces) butter' results in { uom: 'oz', amount: 5 }
```
## parseUomsAndAmounts ⇒ array
Return array of objects like { amount: 70, uom: 'lb', measure: 'mass'}

**Kind**: global constant  
**Params**

- str string
- [rangeConversionMethod] string - 'mean', 'min', or 'max'

**Example**  
```js
'10 tablespoons (1 1/4 sticks or 5+ ounces or 2 + grams) butter' results in [
     {
          amount: 10,
          uom: 'Tbs',
          originalUom: 'tablespoons',
          measure: 'volume'
        },
        {
          amount: 5,
          uom: 'oz',
          originalUom: 'ounces',
          measure: 'mass'
        },
        {
          amount: 2,
          uom: 'g',
          originalUom: 'grams',
          measure: 'mass'
        }
]
```
## parseUomAndAmount ⇒ Object
Return amount, unitOfMeasure, and measure from a string.

**Kind**: global constant  
**Params**

- str string - like '1.5 ounces' or '1.5+ ounces' or '1 15-ounce' or '1 x 15-ounce' or '1 x 15 ounce'

**Example**  
```js
'70 pounds' becomes { amount: 70, uom: 'lb', measure: 'mass'}

NOTE: Amounts must be in decimals, not fractions.
```
## getMeasurementSubstrings ⇒ Array.<string> ⎮ undefined
Return array of amount-uom substrings found in a string whose amounts have been decimalized and ranges converted.

**Kind**: global constant  
**Params**

- str string

## getAllDecimalMeasurePatternMatches ⇒ Array.<string>
Return all unique simple and compound measurement pattern matches within a decimalized, range-converted string.

**Kind**: global constant  
**Params**

- str string

## resolveUOM ⇒ Object ⎮ *
Parse unit of measure and general type of measure ('mass', 'volume', or 'energy') from string.
Returns empty object if fails.

**Kind**: global constant  
**Params**

- str string

**Example**  
```js
Converts "kilogram" to { unitOfMeasure: 'kg', measure: 'mass' }
```
## listUnits
Developer's helper to find certain kinds of units supported by convert-units module.

**Kind**: global constant