@emealscom/packer
v1.3.1
Published
* cups * grams * pounds * liters * mililiters * pint * quart * ounces * tablespoons * teaspoons * unit * each * package * slices * bunck * fz
Downloads
16
Readme
eMeals Measures Conversor Api
Measures supported
- cups
- grams
- pounds
- liters
- mililiters
- pint
- quart
- ounces
- tablespoons
- teaspoons
- unit
- each
- package
- slices
- bunck
- fz
Install
npm install --save-dev typescript
npm install --save @emealscom/packer
How to use it
Options
| Property | Optional | Description | | ----------------------| ----------| --------------------------------------------------| | description | No | Product Description | | unitMeasure | No | Unit of measure on recipe | | unitQuantity | No | Quantity on recipe | | packageUnitMeasure | No | Unit of measure on product package | | packageUnitQuantity | No | Quantity or content on product package | | staple | Yes | If staple or not, if yes, quantities factor is 1 | | rules | Yes | Object Array for rules |
Rules
The Rules are used to perform calculations or replacements to the measurements and quantities of an ingredient or offer. The rules are applied in priority
| Property | Optional | Description | | ----------------------|-----------|---------------------------------------------------| | prior | No | Priority for apply | | condition | No | Object for condition must be applied | | convertion | No | Object for all functions and convertions |
condition
and convertion
is an object for OptionRule
OptionRule
| Property | Optional | Description | |-----------------------|-----------|---------------------------------------------------| | description | Y | Set a value or ConvertFunction | | unitMeasure | Y | Set a value or ConvertFunction | | unitQuantity | Y | Set a value or ConvertFunction | packageUnitMeasure | Y | Set a value or ConvertFunction | packageUnitQuantity | Y | Set a value or ConvertFunction
ConvertFunction
| Property | Optional | Description | |-----------------------|-----------|---------------------------------------------------| | name | No | Name of a function | | value | No | Values for function, string, number, array |
Functions for convertions/conditions
test-regex
, value must be a regular expression string, only return a boolean and must be used on condition.
math-c1
, value must be a number, Math.ceil(property / value)
.
math-c2
, value must be a number, property * value
.
extract-c1
, value must be an array set, index 0 has a property to applied a regular expression, index 1 has a regular expression, return an index 0 for match()
result.
extract-c2
, value must be an array set, index 0 has a property name to applied a regular expression, index 1 has a regular expression, return an index 1 for match()
result.
setval-c1
, value must be an array set, index 0 has a property name and return its value.
Rules examples
{
prior: 2,
condition: {
unitMeasure: {
name: "test-regex",
value: "(jar|bottle|inch)"
}
},
convertion: {
unitQuantity: {
name: "math-c2",
value: ["packageUnitQuantity"]
},
unitMeasure: {
name: "setval-c1",
value: ["packageUnitMeasure"]
}
}
}
{
prior: 2,
condition: {
unitMeasure: {
name: "test-regex",
value: "(ct|count|counts|ctn)"
}
},
convertion: {
packageUnitQuantity: {
name: "math-c2",
value: ["unitQuantity"]
},
packageUnitMeasure: "count"
}
}
Coding
const packer = require('@emealscom/packer')
const packerRequest = {
description: "Broccoli",
offerDescription: "Pack of 4 Broccoli",
unitMeasure: "grams",
unitQuantity: 480,
packageUnitMeasure: "ounces",
packageUnitQuantity: 12
};
console.log(packer.convert(packerRequest));
Result
➜ test node index
{ estimatedQuantity: 2, status: true }