* cups * grams * pounds * liters * mililiters * pint * quart * ounces * tablespoons * teaspoons * unit * each * package * slices * bunck * fz
* cups
* grams
* pounds
* liters
* mililiters
* pint
* quart
* ounces
* tablespoons
* teaspoons
* unit
* each
* package
* slices
* bunck
* fz
``
npm install --save-dev typescript
npm install --save @emealscom/packer
`
| 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 |
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 |
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.
``
{
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"
}
}
`
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));
`
ā test node index
{ estimatedQuantity: 2, status: true }```