@emealscom/packer
TypeScript icon, indicating that this package has built-in type declarations

1.3.1 • Public • Published

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 }

Package Sidebar

Install

npm i @emealscom/packer

Weekly Downloads

4

Version

1.3.1

License

ISC

Unpacked Size

56.5 kB

Total Files

15

Last publish

Collaborators

  • fharias